R語言-繪制雙坐標圖直方圖與折線的結合方式
看代碼吧~
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中繪制折線圖的方法與進階
在顯示隨時間而變化的連續數據時通常可以使用折線圖。尤其是顯示在相等時間間隔下數據的趨勢時折線圖則更加優勢。在折線圖中,類別數據沿水平軸均勻分佈,所有值數據沿垂直軸均勻分佈。一般分類標簽是文本並且代表均勻分佈且遞增的數值(例如月度、季度或財年等)。
事實上,在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” 表示同時畫出點和線。上述代碼執行結果如下:
當使用 type = “c” 時沒有點而隻畫出線。如果想把上圖中的圓圈換成實心三角形,並想用虛線代替實現來連接各個數據點的話,則可以像下面這個做:
上述代碼執行結果如下:
現在我們把這幅圖畫得復雜一些!我們來畫出次刻度線,為此請加載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軸上每個主刻度之間被劃分的子間隔數,上述代碼的執行結果如下
下面我們要做的事情會更加復雜,我們要實現在同一界面上繪制三張圖,並在最後一張圖中繪制多條折線以及添加圖例。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found