楼主: huoybb
5299 5

[问答] R中如何实现双坐标的这类图形? [推广有奖]

  • 0关注
  • 0粉丝

本科生

81%

还不是VIP/贵宾

-

威望
0
论坛币
498 个
通用积分
0.9000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
437 点
帖子
22
精华
0
在线时间
209 小时
注册时间
2013-4-16
最后登录
2024-7-14

楼主
huoybb 发表于 2014-10-30 09:25:16 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
2014-10-30 9-23-06.png
如图所示,该图是用Excel绘制的,数据形式如下:
月份当月新增累计数量

1

Jun-06

37

37

2

Jul-06

29

66

3

Aug-06

14

80

4

Sep-06

2

82

5

Oct-06

6

88

6

Nov-06

4

92

7

Dec-06

12

104

8

Jan-07

6

110

9

Feb-07

8

118

ggplot中是否有实现这种绘图的方法呀?求高手告知!
二维码

扫码加我 拉你入群

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

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

关键词:如何实现 双坐标 用excel EXCEL gplot 如何

回帖推荐

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

沙发
yywan0913 在职认证  发表于 2014-10-30 11:47:47
  1. barplot()
  2. lines()
  3. axis(4,,)
  4. legend()
复制代码
已有 1 人评分论坛币 收起 理由
李会超 + 24 right

总评分: 论坛币 + 24   查看全部评分

藤椅
huoybb 发表于 2014-10-31 22:27:13
  1. with(sums,plot(counts,type='h',col='blue'))
  2. with(sums,lines(cumsum/max(cumsum)*max(counts)*.8,,col='red'))
  3. axis(4,,)
复制代码

其中sums为上面的数据框,counts对应每月新增,cumsum对应累计图书数量,但图形很丑呀,第二个Y坐标不知道怎么能够调整过来!

2014-10-31 22-26-04.png
此外,能够在ggplot2中绘制类似的图形吗?感觉原始的plot好丑呀!

板凳
huoybb 发表于 2014-10-31 22:32:10
原始数据如下:(直接拷贝到Excel中用空格分列就可以变成需要的数据表)

months counts cumsum
1 2006-06 37 37
2 2006-07 29 66
3 2006-08 14 80
4 2006-09 2 82
5 2006-10 6 88
6 2006-11 4 92
7 2006-12 12 104
8 2007-01 6 110
9 2007-02 8 118
10 2007-03 1 119
92 2007-04 0 119
11 2007-05 1 120
12 2007-06 2 122
13 2007-07 12 134
14 2007-08 9 143
15 2007-09 2 145
93 2007-10 0 145
94 2007-11 0 145
95 2007-12 0 145
96 2008-01 0 145
97 2008-02 0 145
16 2008-03 17 162
17 2008-04 12 174
98 2008-05 0 174
18 2008-06 9 183
19 2008-07 3 186
20 2008-08 4 190
21 2008-09 5 195
22 2008-10 2 197
23 2008-11 1 198
24 2008-12 1 199
99 2009-01 0 199
100 2009-02 0 199
25 2009-03 1 200
26 2009-04 1 201
27 2009-05 2 203
28 2009-06 2 205
29 2009-07 2 207
30 2009-08 58 265
31 2009-09 179 444
32 2009-10 100 544
33 2009-11 24 568
34 2009-12 66 634
35 2010-01 14 648
36 2010-02 6 654
37 2010-03 79 733
38 2010-04 25 758
39 2010-05 17 775
40 2010-06 2 777
41 2010-07 7 784
42 2010-08 18 802
43 2010-09 12 814
44 2010-10 32 846
45 2010-11 5 851
46 2010-12 31 882
47 2011-01 2 884
48 2011-02 10 894
49 2011-03 19 913
50 2011-04 24 937
51 2011-05 13 950
52 2011-06 30 980
53 2011-07 87 1067
54 2011-08 161 1228
55 2011-09 111 1339
56 2011-10 61 1400
57 2011-11 48 1448
58 2011-12 89 1537
59 2012-01 46 1583
60 2012-02 38 1621
61 2012-03 13 1634
62 2012-04 30 1664
63 2012-05 73 1737
64 2012-06 90 1827
65 2012-07 64 1891
66 2012-08 18 1909
67 2012-09 26 1935
68 2012-10 26 1961
69 2012-11 3 1964
101 2012-12 0 1964
70 2013-01 3 1967
71 2013-02 4 1971
72 2013-03 2 1973
73 2013-04 8 1981
74 2013-05 139 2120
75 2013-06 80 2200
76 2013-07 17 2217
77 2013-08 74 2291
78 2013-09 104 2395
79 2013-10 148 2543
80 2013-11 312 2855
81 2013-12 226 3081
82 2014-01 116 3197
83 2014-02 87 3284
84 2014-03 30 3314
85 2014-04 142 3456
86 2014-05 374 3830
87 2014-06 173 4003
88 2014-07 52 4055
89 2014-08 147 4202
90 2014-09 166 4368
91 2014-10 456 4824

报纸
huoybb 发表于 2014-10-31 22:59:28
  1. with(sums,plot(counts,type='h',col='blue'))
  2. with(sums,lines(cumsum/max(cumsum)*max(counts)*.8,,col='red'))
  3. y2=c(0,1000,2000,3000,4000,5000)
  4. y1=y2/max(sums$cumsum)*max(sums$counts)*.8
  5. axis(4,at=y1,labels=y2)
复制代码


做了一点修改,坐标轴正确了,但还有几个细节需要调整。1、第二个坐标轴缺少名称
2、X轴没有显示出来
2014-10-31 22-59-08.png

2014-10-31 22-59-08.png (39.73 KB)

2014-10-31 22-59-08.png

地板
李会超 发表于 2014-11-1 08:48:54
R绘图学无止境啊

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

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