Следующее решение также рассматривает ключи управления (которые соответствуют непечатаемым символам).
//Maximum number of characters
var max = 200;
$('#editable_div').keydown(function(e) {
var keycode = e.keyCode;
//List of keycodes of printable characters from:
//http://stackoverflow.com/questions/12467240/determine-if-javascript-e-keycode-is-a-printable-non-control-character
var printable =
(keycode > 47 && keycode < 58) || // number keys
keycode == 32 || keycode == 13 || // spacebar & return key(s) (if you want to allow carriage returns)
(keycode > 64 && keycode < 91) || // letter keys
(keycode > 95 && keycode < 112) || // numpad keys
(keycode > 185 && keycode < 193) || // ;=,-./` (in order)
(keycode > 218 && keycode < 223); // [\]' (in order)
if (printable) {
//Based on the Bala Velayutham's answer
return $(this).text().length <= max;
}
});
1) Проблема заключается в том, что sales_clean$Year
является factor
. 2) ggplot interprit ваш x-значение как категоричное, y-значение как непрерывное и агрегированное значение в штриховом графике (вместо этого есть строки). См. Симуляцию:
library(ggplot2)
set.seed(123)
sales_clean <- data.frame(Year = rep(factor(2014:2018), 1000), Net_Rev = abs(rnorm(5000)))
plotLine <- ggplot(sales_clean, aes(Year, Net_Rev, na.rm = FALSE))
plotLine + geom_line()
3) Одним из решений является преобразование коэффициента в числовое и совокупное по году. См. Результат:
sales_clean$Year_num <- as.numeric(as.character(sales_clean$Year))
sales_clean_plot <- aggregate(Net_Rev ~ Year_num, sales_clean, sum)
plotLine <- ggplot(sales_clean_plot, aes(Year_num, Net_Rev, na.rm = FALSE))
plotLine + geom_line()
4) Лучше не использовать $
в ggplot
aes()
, поскольку имя data.frame уже упоминается в первом аргументе ggplot()
. Код становится грубым и трудно читаемым.