在 R 中使用 plotly 绘图时,如何根据值指定颜色和符号?例如对于 mtcars 示例数据集,如果 mtcars$mpg 大于或小于 18,如何绘制为红色方块?
When plotting with plotly in R, how does one specify a color and a symbol based on a value? For example with the mtcars example dataset, how to plot as a red square if mtcars$mpg is greater or less than 18?
例如:
library(plotly) p <- plot_ly(type = "scatter", data = mtcars, x = rownames(mtcars), y = mtcars$mpg, mode = "markers" )如何将所有高于 20 的点设为黄色方块?
How to get all points above 20 as yellow squares?
推荐答案你可以这样做:
plot_ly(type = "scatter", data = mtcars, x = rownames(mtcars), y = mtcars$mpg, mode = "markers", symbol = ~mpg > 20, symbols = c(16,15), color = ~mpg > 20, colors = c("blue", "yellow"))plot.ly/r/line-and-scatter/#mapping-data-to-symbols
是的,这是可能的,我会首先使用 cut() 在 plot_ly() 之外进行所有分组和形状/颜色规范.然后在引用新的颜色和形状变量时利用 plot_ly() 中的文字 I() 语法:
yes it's possible, I'd make all of your grouping and shape/color specification outside of plot_ly() with cut() first. And then take advantage of the literal I() syntax inside of plot_ly() when referencing your new color and shape vars:
data(mtcars) mtcars$shape <- cut(mtcars$mpg, breaks = c(0,18, 26, 100), labels = c("square", "circle", "diamond")) mtcars$color <- cut(mtcars$mpg, breaks = c(0,18, 26, 100), labels = c("red", "yellow", "green")) plot_ly(type = "scatter", data = mtcars, x = rownames(mtcars), y = mtcars$mpg, mode = "markers", symbol = ~I(shape), color = ~I(color))更多推荐
Plotly:如何根据值指定符号和颜色?
发布评论