我使用ggplot2使用以下R代码创建-1到+1相关值的简单点图:
ggplot(dataframe, aes(x = exit)) +
geom_point(aes(y= row.names(dataframe))) +
geom_text(aes(y=exit, label=samplesize))
y轴有文字标签,我相信那些文字标签可能是我的geom_text()数据点标签被压缩到情节底部的原因,如下图所示:
如何更改绘图以使数据点标签出现在点上?
答案 0 :(得分:2)
据我所知,您希望样本大小显示在图中的每个数据点上方。下面是一个示例图,其中包含一个示例数据框:
编辑:Gregor的每条注释,在引用数据时更改了geom_text()
调用以利用aes()
。谢谢你的抬头!
top10_rank<-
String Number
4 h 0
1 a 1
11 w 1
3 z 3
7 z 3
2 b 4
8 q 5
6 k 6
9 r 9
5 x 10
10 l 11
x<-ggplot(data=top10_rank, aes(x = Number,
y = String)) + geom_point(size=3) + scale_y_discrete(limits=top10_rank$String)
x + geom_text(data=top10_rank, size=5, color = 'blue',
aes(x = Number,label = Number), hjust=0, vjust=0)
不确定这是否是您想要的。
答案 1 :(得分:1)
您的问题只是您切换了y
变量:
# your code
ggplot(dataframe, aes(x = exit)) +
geom_point(aes(y = row.names(dataframe))) + # here y is the row names
geom_text(aes(y =exit, label = samplesize)) # here y is the exit column
由于您希望两者都使用相同的y值,因此您可以在初始ggplot()
调用中对其进行定义,而不必担心以后重复
# working version
ggplot(dataframe, aes(x = exit, y = row.names(dataframe))) +
geom_point() +
geom_text(aes(label = samplesize))
使用行名称有点脆弱,实际创建一个包含y值的数据列更安全,更健壮:
# nicer code
dataframe$y = row.names(dataframe)
ggplot(dataframe, aes(x = exit, y = y)) +
geom_point() +
geom_text(aes(label = samplesize))
完成此操作后,您可能不希望标签位于点的顶部,也许稍微偏移会更好:
# best of all?
ggplot(dataframe, aes(x = exit, y = y)) +
geom_point() +
geom_text(aes(x = exit + .05, label = samplesize), vjust = 0)
在最后一种情况下,您必须使用x
美学的调整,看起来正确将取决于您最终情节的尺寸