Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将线添加到R中不同Y轴上的条形图_R_Graphics_Plot - Fatal编程技术网

将线添加到R中不同Y轴上的条形图

将线添加到R中不同Y轴上的条形图,r,graphics,plot,R,Graphics,Plot,我有以下简单的数据。我希望将“V”与D1、D2、D3的值并排绘制为条形图,将累计总和CS1、CS2、CS3绘制为直线,并以不同的Y比例绘制。虽然如图所示绘制并排条形图相对容易,但我发现很难为CS1-CS3列添加线条图。最后的情节看起来像 谢谢你的帮助 V D1 D2 D3 CS1 CS2 CS3 10 2038 1806 1643 72.81171847 64.52304394 58.69953555 20 550 709 757 92.46159343 89.8

我有以下简单的数据。我希望将“V”与D1、D2、D3的值并排绘制为条形图,将累计总和CS1、CS2、CS3绘制为直线,并以不同的Y比例绘制。虽然如图所示绘制并排条形图相对容易,但我发现很难为CS1-CS3列添加线条图。最后的情节看起来像 谢谢你的帮助

V   D1  D2  D3  CS1 CS2 CS3
10  2038    1806    1643    72.81171847 64.52304394 58.69953555
20  550 709 757 92.46159343 89.85351911 85.7449089
30  142 192 271 97.53483387 96.71311183 95.42693819
40  45  61  80  99.14255091 98.89246159 98.28510182
50  12  20  30  99.57127546 99.6070025  99.35691318
60  5   6   10  99.74991068 99.82136477 99.71418364
70  2   2   3   99.82136477 99.89281886 99.82136477
80  4   1   2   99.96427295 99.92854591 99.89281886
90  1   0   1   100.0000000 99.92854591 99.92854591
100 0   1   0   100.0000000 99.96427295 99.92854591

首先,需要绘制条形图并将其另存为对象。此对象包含条形图的x坐标。由于最大值为39.5,我设置
xlim=c(0,40)


TeachingDemos软件包中的
updateusr
功能允许您更改现有绘图的坐标系,而无需诉诸
par(new=TRUE)
以及随之而来的潜在问题

您还可以查看plotrix软件包中的
twoord.plot
函数作为另一个选项


在同一个绘图上有两个坐标系有时会导致混淆,最好创建两个垂直堆叠的对齐绘图,以便没有重叠,并且比例完全独立,可能会缩短顶部绘图。
layout
功能可以帮助进行这种安排。

谢谢Greg,我想我看到了一些文章,其中包含了你提到的方法的代码。我们将再次调查。
mp<-barplot(as.matrix(t(df[,2:4])),beside=TRUE,xlim=c(0,40),ann=FALSE)
mp
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]  1.5  5.5  9.5 13.5 17.5 21.5 25.5 29.5 33.5  37.5
[2,]  2.5  6.5 10.5 14.5 18.5 22.5 26.5 30.5 34.5  38.5
[3,]  3.5  7.5 11.5 15.5 19.5 23.5 27.5 31.5 35.5  39.5
par(new=TRUE)
plot(mp[2,],df$CS1,xlim=c(0,40),type="l",col="red",axes=FALSE,ylim=c(0,100),ann=FALSE)
lines(mp[2,],df$CS2,col="blue")
lines(mp[2,],df$CS3,col="green")
axis(1,at=mp[2,],labels=df$V)
axis(4,at=seq(0,100,10))
box()