Как лучше всего построить этот набор данных в виде сгруппированной гистограммы, как показано ниже?
Zone Oct Nov Dec
1 554370.8 687899.0 702890.80
2 1072629.8 899767.6 1058627.17
3 660052.9 689939.9 543796.50
4 104881.2 114328.2 86620.23
2 ответа
Вот более измененный набор данных.
zone count month
1 1127071 Jan
2 1025269 Jan
3 196059 Jan
4 43535 Jan
1 1193999 Feb
2 1002110 Feb
3 156429 Feb
4 39396 Feb
Могу ли я построить count
как y и month
как x, но сгруппированные по zone
?
Мне удалось написать это:
ggplot(statLs, aes(month, count, fill=zone, group=zone)) +
geom_bar(stat="identity", position = "stack")
scale_x_discrete(limits=c("Jan", "Feb")) +
scale_fill_manual(values=c("red", "orange", "yellow", "grey"))
Но это возвращает ошибку
Error: Continuous value supplied to discrete scale
Сначала соберите данные, а затем постройте с помощью ggplot2
. Допустим, ваши исходные данные назывались df
:
library(tidyverse)
df1 <- gather(df, Month, val, -Zone)
ggplot(df1, aes(x=Zone, y=val, fill = Month)) +
geom_bar(stat="identity", position=position_dodge())
Новые вопросы
r
R - это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, предоставьте минимальные и воспроизводимые примеры вместе с желаемым результатом. Используйте dput () для данных и укажите все небазовые пакеты с вызовами library (). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. По вопросам, связанным со статистикой, используйте https://stats.stackexchange.com.