楼主: 了空不了色
2687 5

[问答] 请教一个关于ggplot2关于作双坐标轴图的问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:324份资源

本科生

60%

还不是VIP/贵宾

-

威望
0
论坛币
3235 个
通用积分
8.4202
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1087 点
帖子
65
精华
0
在线时间
105 小时
注册时间
2017-1-13
最后登录
2023-9-13

楼主
了空不了色 发表于 2019-5-10 09:44:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
library(ggplot2)
library(gcookbook)
library(scales)
data1<-data.frame(
  value<-c(205463.75,12.31,105743.06,12979.31,63958.87,0,96530.3,2610,45029.74,2689.78,
           88141,1300,69885.97,1000),
  place<-c('市区合计','市区合计','天畅合计','天畅合计','院长合计','院长合计','光明合计','光明合计',
           '光机合计','光机合计','景龙合计','景龙合计','启安合计','启安合计'),
  category<-c('贷款余额','未代偿余额','贷款余额','未代偿余额','贷款余额','未代偿余额',
              '贷款余额','未代偿余额','贷款余额','未代偿余额','贷款余额','未代偿余额',
              '贷款余额','未代偿余额') )
data2<-data.frame(
  ratio<-c(0.0001,0.1227,0,0.027,0.0597,0.0147,0.0143),
  category1<-c('市区合计','天畅合计','院长合计','光明合计','光机合计','景龙合计','启安合计'))
p<-ggplot(data=data1,aes(x=place,y=value,fill=category))+
  geom_bar(stat="identity",width=0.5,position="dodge")+
  geom_text(aes(label=value,vjust = -0.8, hjust =.5), show.legend = FALSE)+
  labs(title="各地区贷款情况  单位:万元", x="", y="")+
  theme_bw()+theme(panel.grid =element_blank())+
  theme(panel.background = element_rect(fill="lightcyan"))+
  theme(legend.title=element_blank(),legend.position="bottom")+
  theme(title=element_text(size=15,color="black",face="bold",hjust=0.2))
p+geom_line(data=data2,aes(x=category1,y=rescale(ratio,c(0,200000)),group=category1))+
  scale_y_continuous(breaks=pretty_breaks(5),sec.axis=sec_axis(~rescale(.,c(0,0.5)),
                                                 name="Ratio",labels=sprintf("%d%%",(0:5)*10)))
p运行出来是没有问题的,然后再添加副坐标轴运行的时候出现了这样的提示
Error: Aesthetics must be either length 1 or the same as the data (7): fill。
求大神指点迷津怎么解决

二维码

扫码加我 拉你入群

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

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

关键词:ggplot2 gplot 双坐标轴 plot 双坐标

回帖推荐

cheetahfly 发表于2楼  查看完整内容

沙发
cheetahfly 在职认证  发表于 2019-5-10 13:12:49
  1. library(ggplot2)
  2. library(gcookbook)
  3. library(scales)

  4. data1<-data.frame(
  5.   value = c(205463.75, 12.31, 105743.06, 12979.31, 63958.87, 0, 96530.3,
  6.             2610, 45029.74, 2689.78, 88141, 1300, 69885.97, 1000),
  7.   place = c('市区合计', '市区合计', '天畅合计', '天畅合计', '院长合计', '院长合计',
  8.             '光明合计', '光明合计', '光机合计', '光机合计', '景龙合计', '景龙合计',
  9.             '启安合计', '启安合计'),
  10.   category = c('贷款余额', '未代偿余额', '贷款余额', '未代偿余额', '贷款余额',
  11.                '未代偿余额', '贷款余额', '未代偿余额', '贷款余额', '未代偿余额',
  12.                '贷款余额', '未代偿余额', '贷款余额', '未代偿余额'))

  13. data2 <- data.frame(
  14.   ratio = c(0.0001, 0.1227,0, 0.027, 0.0597, 0.0147, 0.0143),
  15.   place = c('市区合计', '天畅合计', '院长合计', '光明合计', '光机合计', '景龙合计', '启安合计'))

  16. p <- ggplot(data = data1, aes(x = place, y = value)) +
  17.   geom_bar(aes(fill = category), stat = "identity", width = 0.5, position = "dodge")+
  18.   geom_text(aes(label = value, vjust = -0.8, hjust = .5), show.legend = FALSE) +
  19.   labs(title = "各地区贷款情况  单位:万元", x = "", y = "")+
  20.   theme_bw() +
  21.   theme(panel.grid = element_blank(),
  22.         panel.background = element_rect(fill = "lightcyan"),
  23.         legend.title = element_blank(),legend.position = "bottom",
  24.         title = element_text(size = 15, color = "black", face = "bold", hjust = 0.2))

  25. p + geom_line(data = data2, aes(x = place, y = rescale(ratio, c(0, 200000)), group = 1)) +
  26.   scale_y_continuous(breaks = pretty_breaks(5),
  27.                      sec.axis = sec_axis(~ rescale(., c(0, 0.5)),
  28.                                          name = "Ratio",
  29.                                          labels = sprintf("%d%%", (0:5) * 10)))
复制代码

藤椅
了空不了色 发表于 2019-5-10 16:35:19
cheetahfly 发表于 2019-5-10 13:12
请问一下改为group=1的原因是什么

板凳
cheetahfly 在职认证  发表于 2019-5-10 17:36:16
不同组的不能连线

报纸
了空不了色 发表于 2019-5-14 10:09:20
cheetahfly 发表于 2019-5-10 17:36
不同组的不能连线
非常感谢。另外我发现data.frame里用“=”和用“<-”会有截然不同的结果,请问是什么原因呢?
ps:没有经验,自己摸索,见笑

地板
了空不了色 发表于 2019-5-14 10:09:25
cheetahfly 发表于 2019-5-10 17:36
不同组的不能连线
非常感谢。另外我发现data.frame里用“=”和用“<-”会有截然不同的结果,请问是什么原因呢?
ps:没有经验,自己摸索,见笑

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

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