【问题标题】:How to set showing space in plotly如何在情节中设置显示空间
【发布时间】:2020-05-05 18:05:51
【问题描述】:

有什么方法可以设置视图和轴,以便在我的绘图动画 3D 图形中我可以看到一个特定的空间,并且在这个空间中图形正在移动?我正在尝试制作一个动画来显示检测器的工作原理,但是现在当我播放动画时,视图和轴会随着图形而变化。我知道我可以改变轴的范围,但不知何故它并没有改变我的输出中的任何东西,或者我做错了什么。 这是我的代码:

library(plotly)
Sx <- matrix()
Sy <- matrix()
Sz <- matrix()
N <- 360
u = seq(0, pi/2, length.out = 30) 
w = seq(0, 2*pi, length.out = N)

datalist = list()

for (i in 1:N) {
  Sx = cos(u) * cos(w[i])
  Sy = cos(u) * sin(w[i])
  Sz = sin(u)

  df <- data.frame(Sx, Sy, Sz, t=i)
  datalist[[i]] <- df
}
data = do.call(rbind, datalist)
plot_ly(data, x=~Sx, y =~Sy, z=~Sz, frame=~t, type = 'scatter3d', mode = 'lines')

【问题讨论】:

  • 请检查我的回答。

标签: r animation r-plotly


【解决方案1】:

欢迎使用 stackoverflow!

我不确定我是否正确理解了您的问题。但是,我认为您正在寻找rangeaspectratio 的组合。

请检查以下内容:

library(plotly)
Sx <- matrix()
Sy <- matrix()
Sz <- matrix()
N <- 360
u = seq(0, pi/2, length.out = 30) 
w = seq(0, 2*pi, length.out = N)

datalist = list()

for (i in 1:N) {
  Sx = cos(u) * cos(w[i])
  Sy = cos(u) * sin(w[i])
  Sz = sin(u)

  df <- data.frame(Sx, Sy, Sz, t=i)
  datalist[[i]] <- df
}
data = do.call(rbind, datalist)
plot_ly(data, x=~Sx, y =~Sy, z=~Sz, frame=~t, type = 'scatter3d', mode = 'lines') %>%
  layout(scene = list(xaxis = list(nticks = 5, range = c(-1, 1)),
                      yaxis = list(nticks = 5, range = c(-1, 1)),
                      zaxis = list(nticks = 5, range = c(-1, 1)),
                      aspectmode='manual',
                      aspectratio = list(x=1, y=1, z=1)
                      )) %>% animation_opts(frame = 100)

更多信息请见this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    相关资源
    最近更新 更多