绘图:平行坐标图:轴样式

2024-03-05

我真的很喜欢平行坐标图 情节很好,但我刚刚遇到了一个需要帮助的问题。

某些坐标是否可以使用基于 log10 的轴?

正如您在下面的示例中看到的,执行 log10 变换可以更好地区分较小的值。然而,通过转换数据,我们失去了解释这些值的能力。我更喜欢对轴而不是数据进行对数缩放,但找不到方法来做到这一点。

我确实在github问题中找到了与“轴样式”相关的内容https://github.com/plotly/plotly.js/issues/1071#issuecomment-264860379 https://github.com/plotly/plotly.js/issues/1071#issuecomment-264860379但 不是这个问题的解决方案。

我将不胜感激任何想法/指针。

library(plotly)

# Setting up some data that span a wide range.
df <- read.csv("https://raw.githubusercontent.com/bcdunbar/datasets/master/iris.csv")
df$sepal_width[1] = 50
df$sepal_width_log10 = log10(df$sepal_width)

p <- df %>%
plot_ly(type = 'parcoords',
        line = list(color = ~species_id,
                    colorscale = list(c(0,'red'),c(0.5,'green'),c(1,'blue'))),
        dimensions = list(
            list(range = c(~min(sepal_width),~max(sepal_width)),
                label = 'Sepal Width', values = ~sepal_width),
            list(range = c(~min(sepal_width_log10),~max(sepal_width_log10)),
                tickformat='.2f',
                label = 'log10(Sepal Width)', values = ~sepal_width_log10),
            list(range = c(4,8),
                constraintrange = c(5,6),
                label = 'Sepal Length', values = ~sepal_length))
        )
p

更多平行坐标示例 https://plot.ly/r/parallel-coordinates-plot/

绘制平行坐标文档 https://plot.ly/r/reference/#parcoords


由于尚不支持对数投影,因此手动创建刻度标签似乎是一个有效的解决方案。

# Lets create the axis text manually and map the log10 transform
# back to the original scale.
my_tickvals = seq(min(df$sepal_width_log10), max(df$sepal_width_log10), length.out=8)
my_ticktext = signif(10 ^ my_tickvals, digits = 2)
library(plotly)

# Setting up some data that span a wide range.
df <- read.csv("https://raw.githubusercontent.com/bcdunbar/datasets/master/iris.csv")
df$sepal_width[1] = 50
df$sepal_width_log10 = log10(df$sepal_width)

# Lets create the axis text manually and map the log10 transform back to the original scale.
my_tickvals = seq(min(df$sepal_width_log10), max(df$sepal_width_log10), length.out=8)
my_ticktext = signif(10 ^ my_tickvals, digits = 2)

p <- df %>%
  plot_ly(type = 'parcoords',
          line = list(color = ~species_id,
                      colorscale = list(c(0,'red'),c(0.5,'green'),c(1,'blue'))),
          dimensions = list(
            list(range = c(~min(sepal_width),~max(sepal_width)),
                 label = 'Sepal Width', values = ~sepal_width),
            list(range = c(~min(sepal_width_log10),~max(sepal_width_log10)),
                 tickformat='.2f',
                 label = 'log10(Sepal Width)', values = ~sepal_width_log10),
            list(range = c(~min(sepal_width_log10),~max(sepal_width_log10)),
                 tickvals = my_tickvals,
                 ticktext = my_ticktext,
                 label = 'Sepal Width (log10 axis)', values = ~sepal_width_log10),
            list(range = c(4,8),
                 constraintrange = c(5,6),
                 label = 'Sepal Length', values = ~sepal_length))
          )
p
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绘图:平行坐标图:轴样式 的相关文章

随机推荐

  • 张量流将标签向量操纵为“多个热编码器”

    是否有可能 以一种很好的方式 在张量流中实现下一个功能 假设我们有一个密集的标签向量 labels 0 3 1 2 0 我需要制作一个 多个热编码器 意思是 对于每一行 我需要 1 到标签索引减 1 所以所需的结果将是 0 0 0 1 1
  • 出现错误 400 / 404 - HttpUtility.UrlEncode 未编码完整字符串?

    为什么以下 URL 会出现以下 IIS 错误 A http 192 168 1 96 cms View aspx Show Small test http 192 168 1 96 cms View aspx Show Small test
  • 如何在TThread中设置堆栈大小?

    如何设置自定义堆栈大小TThread 我正在尝试重新引入构造函数TThread但它说ThreadProc不见了 但它就在那里System Classes type TThreadHelper class helper for TThread
  • PHP - 访问 SPAN 值

    我是 PHP 新手 但我正在为订单表单编写电子邮件脚本 我拥有所有值以及表单中没有的内容 其中包含一个跨度用于 javascript 访问客户端的文本元素 我需要做的就是在发布时访问这些跨度值 HTML
  • 图灵完整性需要什么逻辑门?

    我儿子最近在玩小小大星球2 我注意到游戏编辑器允许与门 或门和非门 它是图灵完备吗 如果是这样 任何人都可以推荐一个学习资源 将这些原语转换成更高级别的条件 if 之类的东西吗 你不需要并且one ofAND 或 OR 能够完成所有二进制逻
  • 在 emacs 中调试 python 程序

    如何在 emacs 中调试 python 程序 我在用着python mode el 我发现参考文献建议 import pdb pdb set trace 但我不知道如何使用它 Type M x cd将目录更改为您要调试的程序的位置 类型M
  • headerenricher Spring 集成和 java dsl

    我使用 Spring Integration 和 java dsl 规范来实现我的 IntegrationFlow 我想使用自定义标头丰富器将一些文件名添加到标头 它将类似于 public class FileHeaderNamingEnr
  • 如何根据设置的主题更改flutter中的状态栏图标和文本颜色?

    如何在没有任何第三方插件的情况下更新状态栏图标的颜色 在我的主题类中 我有一个函数 我正在其中尝试下面的代码 但尚未取得结果 截至目前的主题代码 custom light theme for app static final customL
  • 有没有更有效的方法将我的图像划分为重叠的块?

    我想将图像划分为重叠的块 并单独处理这些块 并将每个矩阵的输出存储到一个矩阵中 我尝试过使用im2col但这根本不实用 我的代码是 kek im2col images m 1 64 64 sliding for i 1 size kek 2
  • 如何增加 Firebase 实时数据库 (v9) 中的值

    我注意到有关于如何在 Javascript v8 中增加实时数据库值的说明 添加了 ServerValue increment 以支持无需事务的原子字段值增量 API 文档在这里 使用示例 firebase database ref nod
  • C#:以与分配相反的顺序处理资源是否有优势?

    许多年前 我被告诫要尽可能以与分配方式相反的顺序释放资源 那是 block1 malloc block2 malloc do stuff free block2 free block1 我想象在 640K MS DOS 机器上 这可以最大限
  • ASP.Net MVC 6 + WebAPI Auth - 将 MVC 重定向到登录,但如果使用 WebAPI,则返回 401

    我有一个 AngularJS MVC WebAPI 我正在尝试 使用标准 个人账户 进行MVC认证 使用相同的用户和密码进行基于 WebAPI 的身份验证 问题是 从 AngularJS 来看 一切正常 cookie 交换发生 Web AP
  • 使用 ExtJS 4 的动态模型

    在 ExtJS 3 x 中 我能够使用 Store 的 fields 属性 但在 ExtJS 4 中我似乎必须绝对使用模型 这很好 但就我而言 它不是静态模型 我需要动态定义字段 有时还需要更改它们 我可以重新创建一个模型 但我需要使用不同
  • Ruby 2.1 和 Nokogiri 安装错误?

    我知道这个问题已经在这里 解决 了很多次 但我已经尝试了所有的解决方案 但仍然无法使其发挥作用 这是我的错误 22 01 14 17 57 56 gt gem install nokogiri Building native extensi
  • 如何计算具有共同列名的不同数据框之间的差异

    我有三个数据帧 并尝试计算由数据帧 1 调节的两个数据帧 Df2 和 Df3 之间的差异 如以下示例中所述 我有三个数据帧 Df1 Df2 和 Df3 它们具有通用名称 第一步 在 Df1 中 我想将 标准 列的值与所有三列 Das Dss
  • 有没有办法从跟踪生命周期的任何地方获取给定起点的请求的完整跟踪?

    有没有办法从跟踪生命周期的任何地方获取完整的跟踪请求 基本上 如果我有跟踪的中间点或终点 我可以使用这些点来获取请求的完整跟踪吗 我想构建一个跟踪服务 在 Golang 中 只要用户在请求跟踪期间随时提供点 跨度 该服务就可以返回请求的完整
  • 机器人类类似于 android 类[重复]

    这个问题在这里已经有答案了 可能的重复 Android API 如 java awt Robot https stackoverflow com questions 4416228 android api like java awt rob
  • SQL对具有重叠时间跨度的数据进行分组

    我需要根据记录开始和结束时间通过重叠时间跨度将彼此相关的数据分组在一起 SQL fiddle在这里 http sqlfiddle com 18 87e4b 1 0 http sqlfiddle com 18 87e4b 1 0 我构建的当前
  • 更改 WPF 应用程序中的默认打印机

    我正在寻找更改 WPF 应用程序中默认打印机的最佳方法 以下是我们希望应用程序能够执行的步骤 从下拉列表中选择映射到打印机名称的位置 将默认打印机更改为映射名称 启动 IE 并指向 SSRS 报告 然后 用户将从 IE 打印报告 IE 将使
  • 绘图:平行坐标图:轴样式

    我真的很喜欢平行坐标图 情节很好 但我刚刚遇到了一个需要帮助的问题 某些坐标是否可以使用基于 log10 的轴 正如您在下面的示例中看到的 执行 log10 变换可以更好地区分较小的值 然而 通过转换数据 我们失去了解释这些值的能力 我更喜