情节警告:RColorBrewer::brewer.pal(N, "Set2") :
Plotly Warning: RColorBrewer::brewer.pal(N, "Set2") :
我正在努力在 R 中复制 plotly density plot 示例 here。示例页面上使用的代码是
library(plotly)
dens <- with(diamonds, tapply(price, INDEX = cut, density))
df <- data.frame(
x = unlist(lapply(dens, "[[", "x")),
y = unlist(lapply(dens, "[[", "y")),
cut = rep(names(dens), each = length(dens[[1]]$x))
)
fig <- plot_ly(df, x = ~x, y = ~y, color = ~cut)
fig <- fig %>% add_lines()
fig
当然这很好用,数据的快速预览是
> str(df)
'data.frame': 2560 obs. of 3 variables:
$ x : num -1115 -1073 -1032 -991 -949 ...
$ y : num 6.74e-08 9.02e-08 1.20e-07 1.57e-07 2.06e-07 ...
$ cut: chr "Fair" "Fair" "Fair" "Fair" ...
现在,使用我自己的数据(请参阅下面的 dput() 进行复制),绘图已创建,但会产生警告
fig <- plot_ly(df2, x = ~theta, y = ~values, color = ~ind)
fig <- fig %>% add_lines()
fig
Warning messages:
1: In RColorBrewer::brewer.pal(N, "Set2") :
minimal value for n is 3, returning requested palette with 3 different levels
2: In RColorBrewer::brewer.pal(N, "Set2") :
minimal value for n is 3, returning requested palette with 3 different levels
我的数据结构是
> str(df2)
'data.frame': 34 obs. of 3 variables:
$ values: num 0.0585 0.1003 0.1672 0.2672 0.4018 ...
$ ind : chr "X1" "X1" "X1" "X1" ...
$ theta : num -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 ...
第 3 页的 documentation 明确指出“...如果您要求的调色板存在但没有您要求的那么多不同级别,则会发出警告。”在这种情况下,我的数据在 ind
.
中少于 3
但是,我现在找不到的是是否有可以为 < 3 设置的调色板。我宁愿不抑制或忽略警告。有什么解决建议吗?
谢谢。复现数据如下
> dput(df2)
structure(list(values = c(0.0584990041577079, 0.100254537023576,
0.167189618781583, 0.267205773945374, 0.401760675391809, 0.55864009227321,
0.712171241231567, 0.836160108570042, 0.918694081341489, 0.964460695673611,
0.986034362720271, 0.994936330930512, 0.998262836587041, 0.999424735793067,
0.999813543824513, 0.999940322471119, 0.999981037752802, 0.000454891425316739,
0.00138118245593599, 0.0040618318346699, 0.0113553955978209,
0.0294536830165663, 0.0690401859334859, 0.143049939374408, 0.258712591235403,
0.407910135546857, 0.566494475339215, 0.707280909084666, 0.81478103878707,
0.888097594376448, 0.934397771015761, 0.962244935056505, 0.978507400496616,
0.987842047415269), ind = c("X1", "X1", "X1", "X1", "X1", "X1",
"X1", "X1", "X1", "X1", "X1", "X1", "X1", "X1", "X1", "X1", "X1",
"X2", "X2", "X2", "X2", "X2", "X2", "X2", "X2", "X2", "X2", "X2",
"X2", "X2", "X2", "X2", "X2", "X2"), theta = c(-4, -3.5, -3,
-2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4,
-4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5,
3, 3.5, 4)), row.names = c(401L, 451L, 501L, 551L, 601L, 651L,
701L, 751L, 801L, 851L, 901L, 951L, 1001L, 1051L, 1101L, 1151L,
1201L, 2002L, 2052L, 2102L, 2152L, 2202L, 2252L, 2302L, 2352L,
2402L, 2452L, 2502L, 2552L, 2602L, 2652L, 2702L, 2752L, 2802L
), class = "data.frame")
也许直接通过 args 定义 colors
是个好主意。
下面是一个例子;
fig <- plot_ly(df2, x = ~theta, y = ~values, color = ~ind, colors = c("red", "blue"))
[添加]
我注意到当我给调色板名称 RColorBrewer
时,没有出现警告。
可能
plot_ly(df2, x = ~theta, y = ~values, color = ~ind, colors = "Set2")
是更好的解决方案。
注意:这等同于
plot_ly(df2, x = ~theta, y = ~values, color = ~ind, colors = RColorBrewer::brewer.pal(3, "Set2")[1:2])
我正在努力在 R 中复制 plotly density plot 示例 here。示例页面上使用的代码是
library(plotly)
dens <- with(diamonds, tapply(price, INDEX = cut, density))
df <- data.frame(
x = unlist(lapply(dens, "[[", "x")),
y = unlist(lapply(dens, "[[", "y")),
cut = rep(names(dens), each = length(dens[[1]]$x))
)
fig <- plot_ly(df, x = ~x, y = ~y, color = ~cut)
fig <- fig %>% add_lines()
fig
当然这很好用,数据的快速预览是
> str(df)
'data.frame': 2560 obs. of 3 variables:
$ x : num -1115 -1073 -1032 -991 -949 ...
$ y : num 6.74e-08 9.02e-08 1.20e-07 1.57e-07 2.06e-07 ...
$ cut: chr "Fair" "Fair" "Fair" "Fair" ...
现在,使用我自己的数据(请参阅下面的 dput() 进行复制),绘图已创建,但会产生警告
fig <- plot_ly(df2, x = ~theta, y = ~values, color = ~ind)
fig <- fig %>% add_lines()
fig
Warning messages:
1: In RColorBrewer::brewer.pal(N, "Set2") :
minimal value for n is 3, returning requested palette with 3 different levels
2: In RColorBrewer::brewer.pal(N, "Set2") :
minimal value for n is 3, returning requested palette with 3 different levels
我的数据结构是
> str(df2)
'data.frame': 34 obs. of 3 variables:
$ values: num 0.0585 0.1003 0.1672 0.2672 0.4018 ...
$ ind : chr "X1" "X1" "X1" "X1" ...
$ theta : num -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 ...
第 3 页的 documentation 明确指出“...如果您要求的调色板存在但没有您要求的那么多不同级别,则会发出警告。”在这种情况下,我的数据在 ind
.
但是,我现在找不到的是是否有可以为 < 3 设置的调色板。我宁愿不抑制或忽略警告。有什么解决建议吗?
谢谢。复现数据如下
> dput(df2)
structure(list(values = c(0.0584990041577079, 0.100254537023576,
0.167189618781583, 0.267205773945374, 0.401760675391809, 0.55864009227321,
0.712171241231567, 0.836160108570042, 0.918694081341489, 0.964460695673611,
0.986034362720271, 0.994936330930512, 0.998262836587041, 0.999424735793067,
0.999813543824513, 0.999940322471119, 0.999981037752802, 0.000454891425316739,
0.00138118245593599, 0.0040618318346699, 0.0113553955978209,
0.0294536830165663, 0.0690401859334859, 0.143049939374408, 0.258712591235403,
0.407910135546857, 0.566494475339215, 0.707280909084666, 0.81478103878707,
0.888097594376448, 0.934397771015761, 0.962244935056505, 0.978507400496616,
0.987842047415269), ind = c("X1", "X1", "X1", "X1", "X1", "X1",
"X1", "X1", "X1", "X1", "X1", "X1", "X1", "X1", "X1", "X1", "X1",
"X2", "X2", "X2", "X2", "X2", "X2", "X2", "X2", "X2", "X2", "X2",
"X2", "X2", "X2", "X2", "X2", "X2"), theta = c(-4, -3.5, -3,
-2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4,
-4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5,
3, 3.5, 4)), row.names = c(401L, 451L, 501L, 551L, 601L, 651L,
701L, 751L, 801L, 851L, 901L, 951L, 1001L, 1051L, 1101L, 1151L,
1201L, 2002L, 2052L, 2102L, 2152L, 2202L, 2252L, 2302L, 2352L,
2402L, 2452L, 2502L, 2552L, 2602L, 2652L, 2702L, 2752L, 2802L
), class = "data.frame")
也许直接通过 args 定义 colors
是个好主意。
下面是一个例子;
fig <- plot_ly(df2, x = ~theta, y = ~values, color = ~ind, colors = c("red", "blue"))
[添加]
我注意到当我给调色板名称 RColorBrewer
时,没有出现警告。
可能
plot_ly(df2, x = ~theta, y = ~values, color = ~ind, colors = "Set2")
是更好的解决方案。
注意:这等同于
plot_ly(df2, x = ~theta, y = ~values, color = ~ind, colors = RColorBrewer::brewer.pal(3, "Set2")[1:2])