我正在尝试记录在 Plotly 图表上定义颜色的变换值,但我想在 Plotly 颜色条图例上保留原始值(不是对数变换的数字),以提高可读性。
这是我尝试在 mtcars 数据集上执行的示例:
mtcars %>% plot_ly(x = ~hp,
y = ~qsec,
size = ~disp,
color = ~mpg)
你会得到这个图表:
假设我想用以下代码记录变换颜色变量(mpg):
mtcars %>% plot_ly(x = ~hp,
y = ~qsec,
size = ~disp,
color = ~log(mpg))
我现在对图表很满意,但现在右侧的颜色条有 log() 数字。
我的问题是:如何 log() 转换图表上的颜色变量但保留颜色条上的原始数字并适当调整为新的对数颜色?
因此,一方面,我希望在第二张图片颜色条上保留原始数字,而不是 2.5、3 和 3.5,但另一方面,我想保留这些颜色的颜色位置数字以对数刻度表示,并且不使用 ggplotly。
最佳答案
类似于this answer ,这是使用颜色条刻度的转换值,但未转换的值作为标签的问题。
这里有一个选项:
library(dplyr)
library(plotly)
# Define pretty breaks on transformed scale
brks_transformed <- pretty(log10(mtcars$mpg), n = 5)
# Breaks on the untransformed scale
brks_untransformed <- sprintf("%.1f", 10^brks_transformed)
mtcars %>%
plot_ly(
x = ~hp, y = ~qsec, size = ~ disp, fill = ~ "",
type = "scatter",
mode = "markers",
marker = list(
color = ~ log10(mpg),
line = list(width = 0),
colorbar = list(
tickmode = "array",
ticktext = brks_untransformed,
tickvals = brks_transformed)))
关于r - 如何在 Plotly 中记录颜色的变换值,但在颜色条上保留原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70415844/