簡體   English   中英

使用plotrix包radial.plot為徑向圖中的各個點指定顏色

[英]specifying color to individual points in a radial plot using plotrix package radial.plot

我有2個數據列表。

a = c(0, 14400, 15000, 1600)
b = c(0, 1.1, 2.3, 4.5)

我想使用徑向圖使用極坐標(徑向)繪制圖形。 我想要r = theta,所以r和theta的坐標值在列表“ a”中。

對於點的顏色,我想使用列表“ b”使用條件指定每個點的顏色。 因此,例如:如果b中的elemnt的值小於1,則該元素的顏色為黑色。 如果b中元素的值在1到2之間,則顏色為綠色。 如果b中元素的值大於3,則顏色為紅色。

因此,結果列表將是:

c = c("black", "green", "red", "red")

最后一步是使用列表“ c”為元素着色。 總而言之,我的問題的答案需要2個步驟:1)使用b的值創建一個帶有顏色名稱列表的新列表“ c” 2)在徑向圖中使用列表c為圖中的每個符號着色(我不不知道這是否可能)

這是我到目前為止所擁有的。

pp <- radial.plot(a, a, start = -pi/3, rp.type = "s", clockwise = TRUE, point.symbols=19)
pp

實際數據要大得多,但是我僅提供一個小示例代碼來關注我需要解決的2個問題。 我能夠使用ggplot2生成此圖。 但是,由於其他原因,我寧願在plotrix包中使用radial.plot函數(極坐標/徑向坐標的代碼似乎更容易使用)。

請幫助,我是R的新手。謝謝。

此代碼應足夠靈活以生成所需的繪圖類型。 生成如下圖。 對於角度,我對其進行了縮放,以使a的最大值映射為2 * pi。 這將使圖呈螺旋狀。 如果不這樣做,這意味着,該角度將在值a模2 * PI,和具有大量這種隨機出現。

關於分配顏色的第二部分可以通過基於邏輯索引分配顏色來完成。 可以根據需要添加更多條件。 沒有特定的圖案,要給出更一般的着色結果並不容易。

在此處輸入圖片說明

library(plotrix)

# given example data
a = c(0, 14400, 15000, 1600)
b = c(0, 1.1, 2.3, 4.5)


# initializing vector of colors as NA
colors_plot <- rep(NA,length(b))

# set of conditions listed in the plot
colors_plot[b < 1] <- "black"
colors_plot[intersect(1 < b,b < 2)] <- "green" # need intersect because of double condition
colors_plot[b > 2] <- "red"
# add more conditions as needed

pp <- radial.plot(a, # radial distance
                  a*2*pi/max(a), # scaling so max(a) maps to 2*pi, this avoids the cooridnates wrapping
                  start = -pi/3, # same as code
                  rp.type = "s",
                  clockwise = TRUE,
                  point.symbols=19,
                  point.col=colors_plot, # colors calcualted above
                  radial.labels=NA # not plotting radial axis labels
                  )

暫無
暫無

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

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