Как раскрасить график, увеличивая оттенок цвета на значения категориального столбца с помощью функции plot () R - PullRequest
0 голосов
/ 05 мая 2020
• 1000 Я хочу, чтобы цвет был оттенком от самого светлого до самого темного. Например, минимальный год во фрейме данных - 1946 год, а максимальный год - 2003 год, поэтому 1946 год должен быть самым светлым оттенком назначенного цвета, а 2003 год должен быть самым темным. Я могу раскрашивать график по годам, но я наблюдал один и тот же набор цветов, назначенных каждые пару лет. Хочу, чтобы прогресс за год был визуально заметен. Ниже приведен минимальный воспроизводимый фрейм данных и моя попытка.
# creating dataframe
year <- data.frame(year = seq(1946,2003,1))
crashes <- data.frame(crashes = c(386,317,294,287,266,245,268,296,226,265,243,239,183,212,195,224,170,169,140, 147,111,119,100,115,128,111,80,77,68,69,84,72,90,82,59,67,45,59,50,64,55,63,56,56,57,68,34,32,26,21,20,30,35,28  ,22,27,34,NA))
losses <- data.frame(losses = c(432,423,341,291,282,288,387,323,229,305,244,333,200,215,211,245,197,177,153,152, 115,189,124,129,133,120,91,90,69,78,88,77,95,98,62,70,45,62,70,68,65,73,90,65,61,74,39,33,31,22,21,39,35,58,25,36 ,40,NA))
df <- cbind(year,crashes,losses)
# plotting
plot(df$crashes, df$losses, main = "Sum of Car Crashes and the Total sum of Losses per Year",xlab = "Car Crashes", ylab = "Losses", col = df$year)
legend(x = 401,y = 510, legend = df$year,cex=.3, fill = df$year, xpd=TRUE)

1 Ответ

1 голос
/ 05 мая 2020

Вы можете создать цветовую палитру, указав, сколько цветов вам нужно (длина (df $ year)), и просто использовать ее в качестве аргумента вашего оператора графика.

mypalette <- rainbow(length(df$year))
plot(df$crashes, df$losses, main = "Sum of Car Crashes and the Total sum of Losses per Year",xlab = "Car Crashes", ylab = "Losses", col = mypalette)

Пример для нескольких цветов с Палитра viridis:

install.packages("viridis")  # Install
library("viridis")           # Load
palette <- viridis(length(df$year))
plot(df$crashes, df$losses, main = "Sum of Car Crashes and the Total sum of Losses per Year",xlab = "Car Crashes", ylab = "Losses", col = palette)

Другие цвета палитры: https://www.datanovia.com/en/blog/top-r-color-palettes-to-know-for-great-data-visualization/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...