欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

R语言-绘制双坐标图直方图与折线的结合方式

程序员文章站 2022-06-27 10:06:37
看代码吧~par(mar = c(5, 5, 3, 4)+0.1) #似乎是设置图片位置bar<-barplot(gu[1:22,6],xlim=c(0.5,26),ylim=c(0,20000...

看代码吧~

par(mar = c(5, 5, 3, 4)+0.1) #似乎是设置图片位置
bar<-barplot(gu[1:22,6],xlim=c(0.5,26),ylim=c(0,200000),ylab="交易量",
col="blue",col.axis="blue",col.lab="blue")

mtext(c(1:22),side=1,line=1,at=bar,cex=0.8,col="black")
mtext("time",side =1,line=3,col="black")
par(new=t)
plot(bar,gu[1:22,2],axes=f,xlim=c(0.5,26),ylim=c(17,23),xlab="",ylab="",
col="green",type="o")

#ylim设置不好的话就会看不见折线

axis(4,col="red",col.ticks="red",col.axis="red")
mtext("价格",side=4,line=3,col="red")
par(new=t)
plot(bar,gu[1:22,5],axes=f,xlim=c(0.5,26),ylim=c(17,23),xlab="",ylab="",
col="red",type="o")
legend("top",c('开盘价','收盘价'),col=3:2,lty=1)

效果如下

R语言-绘制双坐标图直方图与折线的结合方式

补充:在r中绘制折线图的方法与进阶

在显示随时间而变化的连续数据时通常可以使用折线图。尤其是显示在相等时间间隔下数据的趋势时折线图则更加优势。在折线图中,类别数据沿水平轴均匀分布,所有值数据沿垂直轴均匀分布。一般分类标签是文本并且代表均匀分布且递增的数值(例如月度、季度或财年等)。

事实上,在excel中绘制折线图是相当方便的。但我们现在要来讨论的是在r中如何绘制折线图,尤其是一些不常见但非常有用的技巧我们也会在本文中讨论。

我们首先来讨论最简单的情况,绘制一条折线:

> dose = c(20, 30, 40, 50, 60)
> druga= c(16, 20, 27, 40, 60)
> drugb= c(15, 18, 25, 31, 40)
> plot(dose, druga, type = "b")

其中 type = "b" 表示同时画出点和线。上述代码执行结果如下:

R语言-绘制双坐标图直方图与折线的结合方式

当使用 type = "c" 时没有点而只画出线。如果想把上图中的圆圈换成实心三角形,并想用虚线代替实现来连接各个数据点的话,则可以像下面这个做:

上述代码执行结果如下:

R语言-绘制双坐标图直方图与折线的结合方式

现在我们把这幅图画得复杂一些!我们来画出次刻度线,为此请加载hmisc包用,以便添加次要刻度线:

> library(hmisc)

然后执行下面的代码:

> plot(dose,drugb,type="b",pch=3,lty=3,col="blue",ylim=c(0,max(drugb)*1.1),
+ xlab="x",ylab="y",main="example")
> minor.tick(nx=5,ny=2,tick.ratio=0.5)#添加次要刻度线

其中nx和ny分别表示x轴和y轴上每个主刻度之间被划分的子间隔数,上述代码的执行结果如下

R语言-绘制双坐标图直方图与折线的结合方式

下面我们要做的事情会更加复杂,我们要实现在同一界面上绘制三张图,并在最后一张图中绘制多条折线以及添加图例。

R语言-绘制双坐标图直方图与折线的结合方式

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。