楼主: Laplace_Yin
39591 7

[问答] ggplot怎么在柱形图上添加数值 [推广有奖]

  • 0关注
  • 1粉丝

本科生

72%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.0001
学术水平
2 点
热心指数
3 点
信用等级
0 点
经验
1253 点
帖子
69
精华
0
在线时间
75 小时
注册时间
2012-3-6
最后登录
2016-12-4

楼主
Laplace_Yin 发表于 2014-5-19 13:45:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如下图:
S2_1_1.jpg
我想在柱形图上方标注具体的数值。
代码如下:
  1. for(i in 1:33)
  2. {
  3.   num=paste0(names(q.stu.2)[4+i],'.')
  4.   q.stu.2.sex.plot=ggplot(data.frame(q.stu.2.sex[i]),
  5.                           aes_string(x=paste0(num,'p'),y=paste0(num,'Freq'),
  6.                                      fill=paste0(num,'Var1'))+
  7.     geom_bar(width=0.5,position='dodge')
  8.   ggsave(q.stu.2.sex.plot,filename=file.path('分性别-第二题-柱形图',
  9.                                              paste0(names(q.stu.2)[[4+i]],'.jpg')))
  10. }
复制代码
但是,两个数字有时候会标到一起,因为给的坐标是一个坐标,有没有什么参数可以智能调整的?
求大神显灵:D
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:gplot plot 柱形图 GPL position names

沙发
fssdlyl001 发表于 2014-5-20 13:00:41
没用过aes_string,建议使用geom_text(aes(label=因变量),position=postion_dodge(.9))

藤椅
Laplace_Yin 发表于 2014-6-1 10:54:03
fssdlyl001 发表于 2014-5-20 13:00
没用过aes_string,建议使用geom_text(aes(label=因变量),position=postion_dodge(.9))
这行position=postion_dodge(.9)里用到的postion_dodge是哪个包里的函数啊?

板凳
Laplace_Yin 发表于 2014-6-1 11:27:50
fssdlyl001 发表于 2014-5-20 13:00
没用过aes_string,建议使用geom_text(aes(label=因变量),position=postion_dodge(.9))
postion_dodge...函数名写错了
而且问题依然没有解决啊,数字依然还在图形里嵌着....

报纸
fssdlyl001 发表于 2014-6-1 15:34:47
Laplace_Yin 发表于 2014-6-1 11:27
postion_dodge...函数名写错了
而且问题依然没有解决啊,数字依然还在图形里嵌着....
嗯,是position_dodge()...你不是想让数字在图形里显示吗,把dodge的值以及字体再调小一点

地板
Laplace_Yin 发表于 2014-6-1 19:51:53
fssdlyl001 发表于 2014-6-1 15:34
嗯,是position_dodge()...你不是想让数字在图形里显示吗,把dodge的值以及字体再调小一点
不是,我想让数字显示在柱形的上方,跟柱形分开的

7
fssdlyl001 发表于 2014-6-2 09:49:01
Laplace_Yin 发表于 2014-6-1 19:51
不是,我想让数字显示在柱形的上方,跟柱形分开的
你现在的图也是分开的啊...还想把位置调高一点的话,在geom_text()里面设置vjust参数为负就可以了

8
渔夫 发表于 2014-6-6 11:52:33
fssdlyl001 发表于 2014-6-2 09:49
你现在的图也是分开的啊...还想把位置调高一点的话,在geom_text()里面设置vjust参数为负就可以了
aes_string(x=paste0(num,'p'),y=paste0(num,'Freq') + 0.2,


给 y 加上 小数目,具体多少,你可以调试。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 07:25