【问题标题】:Why does R plot_ly heatmap extend x limits of my data?为什么 R plot_ly 热图会扩展我的数据的 x 限制?
【发布时间】:2020-05-16 10:59:04
【问题描述】:

我想在热图中而不是计数图中呈现以下内容:

当我通过以下方式渲染相同的内容时:

p2 <- plot_ly(x=xplot,y=yplot,z=zplot,type="heatmap",zsmooth="best")

我明白了

我已经验证xplot 的限制是 100 和 200。

为什么 plot_ly 显示的 x 轴范围是 50 到 250?我认为这可能与数据“z 平滑”的方式有关,但 y 轴似乎没有受到影响。


我尝试绘制的数据集有 2,500 个点,但我相信您应该能够使用以下数据看到相同的行为:

xplot = c(100, 100, 200, 200, 200, 200, 200)
yplot = c(98, 100, 184, 188, 192, 196, 200)
zplot = c(557740.27, 562123.04,  23871.66,  24987.45,  25735.05,  26106.02,  26095.27)

【问题讨论】:

  • 请提供一个可重现的示例,以便其他人可以尝试一下,看看发生了什么。
  • 我添加了我认为会重现该行为的内容

标签: r plotly r-plotly


【解决方案1】:

R 和大多数其他绘图包都非常努力地自动猜测您的 x 和 y 轴限制,因此您的数据“看起来不错”并且不会被压扁,但有时他们会弄错。

在没有看到完整数据的情况下,很难猜测究竟是什么可以修复它,但“手动范围”上的plotly documentation 部分表明修改轴会有所帮助:

p2 <- plot_ly(x=xplot,y=yplot,z=zplot,type="heatmap",zsmooth="best") %>%
  layout(
    xaxis = list(range=c(100,200),
    yaxis = list(range=c(80,200)))

【讨论】:

  • 感谢您的回答。我还能够从 plotly.js 文档中发现 zsmooth="best" 在数据空间中插值,"fast" 在像素空间中插值。从 javascript 代码 (here) 看来,x 数据的处理方式与 y 数据不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 2017-05-22
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多