geom_bar绘制DF长度
问题描述:
的字符变量我有一个DF
geom_bar绘制DF长度
a b
A 1
B 1
C 1
B 1
B 1
A 1
我试图产生条形图与ggplot
与DF$a
在x轴和DF$b
在y轴上。我用下面的
p <- ggplot(DF, aes(a,b)) + geom_bar(stat="identity")
但现在看来,从DF$a
只有ggplot
地块特有的字母,而我想绘制所有这些的。我该怎么做?谢谢你的帮助。
答
您可以创建一个名为order的新变量,该变量在每一行中都是唯一的,并用它来绘图。然后,您可以重新标记x轴以匹配原始变量。
df$order <- as.factor(1:nrow(df))
ggplot(df, aes(x = order, y = b)) +
geom_bar(stat = 'identity') +
scale_x_discrete(breaks = df$order, labels = df$a)
答
你可能避免定义一个新的变量如图@ mhairi - 麦克尼尔仅通过拉动rownames断为您的x值
ggplot(DF, aes(x = rownames(DF),y = b)) +
geom_bar(stat="identity") +
scale_x_discrete(labels = DF$a)
谢谢你,其实我试过,但没得到运气。 – HoHoHo
有趣 - 这在我的机器上正常工作。你可能需要尝试使用'as.factor()'来包装'rownames(DF)'...... – joemienko
是的,确切地说,那是我的错误,谢谢你的帮助! :) – HoHoHo