簡體   English   中英

r- ggplot2:2條線的極線圖

[英]r- ggplot2: polar line plot with 2 lines

使用ggplot2 ,我試圖在極線圖中繪制兩種處理方式。 我可以為兩種治療方法繪制點圖,並獲得我輸入的第一種治療方法的直線,但是我想要連接第二個子集的線僅覆蓋第二種方法。

  category highest lowest
  1        A      71     23
  2        B      81     38
  3        C      77     22
  4        D      83     56
  5        E      84     32
  6        F      82     55
  7        G      73     26

到目前為止,我的代碼看起來像這樣

p1<-ggplot(data=d,aes(x=factor(category),y=highest,group=1)) + 
ylim(0,NA) +
geom_point(color='purple',stat='identity')+
geom_polygon(color='purple',fill=NA)+
coord_polar(start =-pi* 1/7)

p1

p1 + 
geom_point(aes(x=factor(category),y=lowest),color='green',stat='identity')+
geom_polygon(color='green',fill=NA)+
coord_polar(start =-pi* 1/7)

它看起來像這樣

情節

有什么幫助嗎? 謝謝!!

在第二個geom_polygon調用中,您仍在使用整體y美學(“最高”)。 要繪制不同的列,您需要在層中的aes定義它。

geom_polygon(aes(y = lowest), color='green',fill=NA)

不過,進行這種繪圖的更標准方法是將數據集轉換為長格式,其中將變量(最高和最低)分組是一個變量,並且所有y值都位於一列中以進行繪圖。

library(reshape2)
d2 = melt(d, id.var = "category")

一旦有了,就可以將color映射到分組變量。 您可以使用scale_color_manual將顏色設置為特定值。 默認情況下,您會得到一個圖例(這可能是一件好事),但是您可以使用guide = "none"來取消它。

ggplot(data=d2, aes(x=factor(category), y=value, group = variable, color = variable)) + 
    ylim(0,NA) +
    geom_point(, stat='identity') +
    geom_polygon(fill=NA)+
    coord_polar(start =-pi* 1/7) +
    scale_color_manual(values = c("purple", "green"), guide = "none")

兩種方法最終給出相同的圖: 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM