R 如何制作灰度饼图?

R 如何制作灰度饼图?,r,plotly,R,Plotly,下面是绘制饼图的R代码 library(data.table) # Data data <- data.table( class = c("class 1", "class 2", "class 3", "class 4"), count = c(2403, 4949, 18, 570)) # Pie data %>% plot_ly() %>% add_trace( ty

下面是绘制饼图的R代码

library(data.table)

# Data
data <- data.table(
  class = c("class 1", "class 2", "class 3", "class 4"),
  count = c(2403, 4949, 18, 570))

# Pie
data %>% plot_ly() %>% 
  add_trace(
    type = 'pie',
    labels = ~class, 
    values = ~count,
    marker = list(
      color = "rgb(211, 211, 211)",
      line = list(color = "rgb(20, 20, 20)", width = 1))
  ) %>% 
  layout(
    xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
    yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
库(data.table)
#资料
数据%plot_ly()%>%
添加跟踪(
类型='饼',
标签=~class,
值=~count,
标记=列表(
color=“rgb(211211211211)”,
行=列表(color=“rgb(20,20,20)”,宽度=1))
) %>% 
布局(
xaxis=list(showgrid=FALSE,zeroline=FALSE,showticklabels=FALSE),
yaxis=list(showgrid=FALSE,zeroline=FALSE,showticklabels=FALSE))

当我需要它作为灰度时,它会绘制一个“彩色”图表。

对于类变量长度的灵活方法,您只需使用:

colors = gray.colors(length(data$class))
绘图1:

library(data.table)
library(dplyr)
library(plotly)

# Data
data <- data.table(
  class = c("class 1", "class 2", "class 3", "class 4"),
  count = c(2403, 4949, 18, 570))

# Pie
data %>% plot_ly() %>% 
  add_trace(
    type = 'pie',
    labels = ~class, 
    values = ~count,
    marker = list(
      #colors = list("rgb(120, 120, 120)", "rgb(160, 160, 160)", "rgb(180, 180, 180)", "rgb(220, 220, 220)"),
      colors = gray.colors(length(data$class)),
      line = list(color = "rgb(20, 20, 20)", width = 1))
  ) %>% 
  layout(
    xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
    yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))

或者,如果您喜欢其他灰色色调,可以使用以下选项指定您自己的色调:

colors = list("rgb(80, 80, 80)", "rgb(120, 120, 120)", "rgb(160, 160, 160)", "rgb(160, 160, 160)")
绘图2:

library(data.table)
library(dplyr)
library(plotly)

# Data
data <- data.table(
  class = c("class 1", "class 2", "class 3", "class 4"),
  count = c(2403, 4949, 18, 570))

# Pie
data %>% plot_ly() %>% 
  add_trace(
    type = 'pie',
    labels = ~class, 
    values = ~count,
    marker = list(
      #colors = list("rgb(120, 120, 120)", "rgb(160, 160, 160)", "rgb(180, 180, 180)", "rgb(220, 220, 220)"),
      colors = gray.colors(length(data$class)),
      line = list(color = "rgb(20, 20, 20)", width = 1))
  ) %>% 
  layout(
    xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
    yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))

完整代码:

library(data.table)
library(dplyr)
library(plotly)

# Data
data <- data.table(
  class = c("class 1", "class 2", "class 3", "class 4"),
  count = c(2403, 4949, 18, 570))

# Pie
data %>% plot_ly() %>% 
  add_trace(
    type = 'pie',
    labels = ~class, 
    values = ~count,
    marker = list(
      #colors = list("rgb(120, 120, 120)", "rgb(160, 160, 160)", "rgb(180, 180, 180)", "rgb(220, 220, 220)"),
      colors = gray.colors(length(data$class)),
      line = list(color = "rgb(20, 20, 20)", width = 1))
  ) %>% 
  layout(
    xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
    yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
库(data.table)
图书馆(dplyr)
图书馆(绘本)
#资料
数据%plot_ly()%>%
添加跟踪(
类型='饼',
标签=~class,
值=~count,
标记=列表(
#颜色=列表(“rgb(120120120)”,“rgb(160160160)”,“rgb(180180180)”,“rgb(220220220)”,
颜色=灰色。颜色(长度(数据$class)),
行=列表(color=“rgb(20,20,20)”,宽度=1))
) %>% 
布局(
xaxis=list(showgrid=FALSE,zeroline=FALSE,showticklabels=FALSE),
yaxis=list(showgrid=FALSE,zeroline=FALSE,showticklabels=FALSE))

您可以尝试在饼图中添加
颜色=灰色。颜色(4)
标记=列表(…)
中指定4种灰度颜色。首先,您需要使用
颜色
而不是
颜色
(如果这样做,您将看到绘图的4个部分之一是灰色的)。其次,正如本建议的,你需要4种灰色,因为你有4个不同的组。我认为这是一个错字,因为你使用了错误的论点,并没有提供正确的元素。@ Andrii,请考虑赞成/接受下面的答案,如果这对你有帮助的话。