簡體   English   中英

R圖表散射極譜圖泡沫缺失

[英]R plotly scatterpolar chart bubble missing

我知道它必須是基本的東西,但很難找到問題。 這是我易於重現的R代碼

library(plotly)

risk_status <- data.frame(
  id <- c(1:6),
  r <- c(1, 2, 3, 4, 3, 2),
  theta <- c(30, 90, 180, 220, 270, 330),
  bubbleSize <- c(10, 20, 30, 40, 50, 60),
  name <- c("Rick","Dan","Michelle","Ryan","Gary", "Pedro"),
  status <- c("Low", "Medium", "Low", "Medium", "Low", "Low")
)

risk_status$status <- factor(risk_status$status, levels = c("Low", "Medium", "High"))
bubble_colors_vector <- c("red", "green", "blue")


p <- plot_ly( data = risk_register_data) %>%
  add_trace(
    type = 'scatterpolar',
    r = ~r,
    theta = ~theta,
    size = as.numeric(risk_status$status),
    sizes = c(100,500)#,

    #color = risk_status$status,
    #colors = bubble_colors_vector
  ) %>%
  add_trace(
    type = "scatterpolar",
    mode = "text",
    r = risk_status$r,
    theta = risk_status$theta,
    text = risk_status$id

  )
p

圖表輸出:

在此輸入圖像描述

到目前為止,這很好。 但現在讓我們說,如果我想在其中引入顏色,只需通過取消注釋colorcolors參數。 我得到這個圖表:

在此輸入圖像描述

假設我使用color = as.numeric(risk_status$status)在這種情況下,我得到這樣的圖表 在此輸入圖像描述

在這里,我不想要這個尺度和傳說。

我知道,有一些問題,因為在factoringstatus數據幀的專欄中,我已經提供了"Low", "Medium", "High"的水平,而在列僅"Low", "Medium"是存在的。 但是,這是一個正常的情況,也沒有顏色,氣泡的大小正確表示,那么為什么在添加顏色的同時也缺少尺寸?

提前致謝!

最后,我通過在for loop中使用add_trace的解決方法解決了這個問題。

這是代碼:

library(plotly)

risk_status <- data.frame(
  id <- c(1:6),
  r <- c(1, 2, 3, 4, 3, 2),
  theta <- c(30, 90, 180, 220, 270, 330),
  bubbleSize <- c(10, 20, 30, 40, 50, 60),
  name <- c("Rick","Dan","Michelle","Ryan","Gary", "Pedro"),
  status <- c("Low", "Medium", "Low", "Medium", "Low", "Low")
)

risk_status$status <- factor(risk_status$status, levels = c("Low", "Medium", "High"))
bubble_colors_vector <- c("red", "green", "blue")


p <- plot_ly( data = risk_status) %>%

  add_trace(
    type = 'scatterpolar',
    r = risk_status$r[risk_status$status == 'Low'],
    theta = risk_status$theta[risk_status$status == 'Low'],
    #size = as.numeric(risk_status$status[risk_status$status == 'Low']),
    #sizes = c(100,500),

    #color = 'red', #risk_status$status[risk_status$status == 'Low'], #as.numeric(risk_status$status), #risk_status$status,
    #colors = bubble_colors_vector[risk_status$status == 'Low'],

    mode = 'markers',
    marker = list(symbol = 'circle', line = list(width = 1, color = 'black'), mode="scatterpolar", color = "red", size=20)
  ) %>%
  add_trace(
    type = 'scatterpolar',
    r = risk_status$r[risk_status$status == 'Medium'],
    theta = risk_status$theta[risk_status$status == 'Medium'],
    #size = as.numeric(risk_status$status[risk_status$status == 'Medium']),
    #sizes = c(100,500),

    #color = 'red', #risk_status$status[risk_status$status == 'Medium'], #as.numeric(risk_status$status), #risk_status$status,
    #colors = bubble_colors_vector[risk_status$status == 'Medium'],

    mode = 'markers',
    marker = list(symbol = 'circle', line = list(width = 1, color = 'black'), mode="scatterpolar", color = "yellow", size=20)
  ) %>%

  add_trace(
    type = 'scatterpolar',
    r = risk_status$r[risk_status$status == 'High'],
    theta = risk_status$theta[risk_status$status == 'High'],
    #size = as.numeric(risk_status$status[risk_status$status == 'High']),
    #sizes = c(100,500),

    #color = 'red', #risk_status$status[risk_status$status == 'High'], #as.numeric(risk_status$status), #risk_status$status,
    #colors = bubble_colors_vector[risk_status$status == 'High'],

    mode = 'markers',
    marker = list(symbol = 'circle', line = list(width = 1, color = 'black'), mode="scatterpolar", color = "green", size=20)
  ) %>%


  add_trace(
    type = "scatterpolar",
    mode = "text",
    r = risk_status$r,
    theta = risk_status$theta,
    text = risk_status$id

  )
p

輸出圖表: 在此輸入圖像描述

暫無
暫無

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

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