我有一个名为fruits_by_number
的数据集,如下所示:
category Number
Apple 4
Banana 5
Orange 2
Pear 0
我想制作一个图表,在x轴上有条形符号表示水果类别,在y轴上有条形图作为高度。
我试过这个:
qplot(x = category , y = number, data = fruits_by_number, geom = "dot")
我的第一个问题是:如何代替"dot"
我要求酒吧?
我的第二个问题是:即使我得到一个酒吧,因为在(实际)数据集中,水果名称大约为30,在x轴图例的下方,我得到了一个大麻烦。
我看到了这个:
qplot(data = movies_df,Runtime,fill = Genre,bins = 30)
在this website上有这张图片:
这与我想要的东西很接近。
我尝试将fill
替换为dodge
,但它不起作用。
你能帮我看看如何制作一个图表,水果类别将按颜色排列在右边(如图中所示),然后我会有颜色非高度重叠的条形高度等于数字吗?
PS1:如果我遵循这个建议:
p <- ggplot(data = trans_units_by_subject, aes(x = category, y = sumUnits_t, fill = category))
p + geom_bar(stat = "identity")
我仍然在x轴下面得到如下描述:enter image description here
答案 0 :(得分:3)
我建议您使用ggplot()而不是qplot()。我相信它更易于管理,你可以通过情节选项更好地发挥。尝试这样的事情:
p <- ggplot(data = fruits_by_number, aes(x = category, y = Number, fill = category))
p + geom_bar(stat = "identity")
这将生成一个条形图,其中X轴将是水果类别,Y轴将是数字,您将为图中的每个水果填充颜色,包括其图例。我必须告诉你,在这种图形中使用颜色填充(不包括任何美学功能)是多余的,因为所有的水果都会在X轴上有标签。
另外,当你有两个因素和每个因素有几个级别时,你会使用“闪避”。例如,您的数据框中有一个额外因子“年龄”:Apple(新/旧),梨(新/旧)。所以你可以使用这样的东西:
p <- ggplot(data = fruits_by_number, aes(x = category, y = Number, fill = Age))
p + geom_bar(stat = "identity", position = "dodge")
生成的绘图将只有两种颜色的因子Age(New / Old),并且条形将被分开。在您放置的示例中,默认选项是position =“stack”,因此您将有堆叠条。
如果您仍想使用颜色且没有x轴标签,请使用以下内容:
p <- ggplot(data = fruits_by_number, aes(x = category, y = Number, fill = category))
p <- p + geom_bar(stat = "identity")
p <- p + theme(axis.text.x = element_blank())
p
尝试不同的调色板
查看此页:
http://ggplot2.tidyverse.org/reference/geom_bar.html http://ggplot2.tidyverse.org/reference/theme.html
答案 1 :(得分:2)
我建议将你的情节侧身调整以容纳30个类别。使用上面的数据,
require(ggplot2)
ggplot(fruits_by_number) +
geom_bar(aes(x = category,
y = Number,
fill = category),
stat = "identity") +
coord_flip()
上面的fill
为条形添加颜色(删除它以使它们颜色相同),数据是,
fruits_by_number <-
read.table(text='
category Number
Apple 4
Banana 5
Orange 2
Pear 0',
header=T)
答案 2 :(得分:1)