我有以下几点:
> ArkHouse2014 <- read.csv(file="C:/Rwork/ar14.csv", header=TRUE, sep=",")
> ArkHouse2014
DISTRICT GOP DEM
1 AR-60 3,951 4,001
2 AR-61 3,899 4,634
3 AR-62 5,130 4,319
4 AR-100 6,550 3,850
5 AR-52 5,425 3,019
6 AR-10 3,638 5,009
7 AR-32 6,980 5,349我想做的是制作一个柱状图(或一系列柱状图)来比较y轴上第二列和第三列中的总数,而x轴将在第一列中显示信息。
这看起来应该很容易做到,但我能找到的大多数关于制作条形图的信息都让你从数据中制作一个表格,然后绘制条形图,例如,
> table(ArkHouse2014$GOP)
2,936 3,258 3,508 3,573 3,581 3,588 3,638 3,830 3,899 3,951 4,133 4,166 4,319 4,330 4,345 4,391 4,396 4,588
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
4,969 5,130 5,177 5,343 5,425 5,466 5,710 5,991 6,070 6,100 6,234 6,490 6,550 6,980 7,847 8,846
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 我不想要每个总数的计数,我只想直观地表示数量。我觉得自己很愚蠢,不能弄清楚这一点,所以提前感谢你给我的任何建议。
发布于 2016-01-08 23:26:04
这里有一个使用库reshape2和ggplot2的选项
我首先读取您的数据(使用dec = ","):
df <- read.table(header=TRUE, text="DISTRICT GOP DEM
1 AR-60 3,951 4,001
2 AR-61 3,899 4,634
3 AR-62 5,130 4,319
4 AR-100 6,550 3,850
5 AR-52 5,425 3,019
6 AR-10 3,638 5,009
7 AR-32 6,980 5,349", dec = ",")然后将其重塑为长格式:
library(reshape2)
df_long <- melt(df, id.var = "DISTRICT")然后使用ggplot创建条形图
library(ggplot2)
ggplot(df_long, aes(x = DISTRICT, y = value, fill = variable)) +
geom_bar(stat = "identity", position = "dodge")

或者,如果你想把条形堆叠起来:
ggplot(df_long, aes(x = DISTRICT, y = value, fill = variable)) +
geom_bar(stat = "identity") https://stackoverflow.com/questions/34680039
复制相似问题