r - 如何在 Plotly 中记录颜色的变换值,但在颜色条上保留原始值?

标签 r plotly logarithm

我正在尝试记录在 Plotly 图表上定义颜色的变换值,但我想在 Plotly 颜色条图例上保留原始值(不是对数变换的数字),以提高可读性。

这是我尝试在 mtcars 数据集上执行的示例:

mtcars %>% plot_ly(x = ~hp, 
               y = ~qsec,                                                                        
               size = ~disp,
               color = ~mpg)

你会得到这个图表:

enter image description here

假设我想用以下代码记录变换颜色变量(mpg):

mtcars %>% plot_ly(x = ~hp, 
               y = ~qsec,                                                                        
               size = ~disp,
               color = ~log(mpg))

我会得到这个图表: enter image description here

我现在对图表很满意,但现在右侧的颜色条有 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)))

enter image description here

关于r - 如何在 Plotly 中记录颜色的变换值,但在颜色条上保留原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70415844/

相关文章:

c++ - Delta V 计算器问题与对数

c - 手动编码的日志函数无法找到超过 10 的 base-10 日志

r - 如何生成和编制 .Rmd 报告的个性化版本?

r - dplyr summarise() 具有来自单个函数的多个返回值

r - 基于向量条件的子集数据框

r - R 中使用多个交互下拉菜单的绘图轨迹的可见性

python - Plotly:如何使用 plotly.graph_objects 和 plotly.express 在图形中定义颜色?

python - Plotly:如何填充线之间的区域?

r - 限制在评估 (eval()) 用户输入以进行拼凑时可以执行的代码

python - 以对数方式拆分 Python 列表