2017-06-18 68 views
0

我想將3d線添加到3d plot_ly曲面圖。當我不在plot_ly調用中添加add_lines()函數時,它看起來很好。只要我添加add_lines,圖形就會變得混亂,並且不會添加3d線圖。我正在積極使用4.7.0。R:Plot_ly帶跟蹤線的3d圖形

library(plotly) 
m_x = seq(-2, 2, .01) 
m_y = seq(-2, 2, .01) 
df = expand.grid(m_x, m_y) 
df['matrix'] = exp(-(df$Var1^2+df$Var2^2)) 
m_z = matrix(df$matrix, nrow = length(m_x), ncol = length(m_y)) 
m_df = list(m_x, m_y, m_z) 

x1 = seq(-2, 0, by=0.0202) 
y1 = runif(100, min=-0.03,max=0.03) 
z1 = exp(-(x1^2+y1^2)) 
df = data.frame(x1, y2, z2) 
names(df) <- c("df_x", "df_y", "df_z") 


colors = c("Blue", "Cyan", "Green", "Yellow", "Orange", "Red") 
p1 <- plot_ly(x = m_df[[1]], y = m_df[[2]], z = m_df[[3]], 
       colors = colors, color = m_df[[3]]) %>% add_surface() %>% 
    add_lines(x = df$df_x, y = df$df_y, z = df$df_z, data = df, 
      line = list(color = 'red', width = 1)) %>% 
    layout(title = "Hike_Example", 
     scene = list(aspectratio = list(x = 4, y = 4, z = 1))) 

p1 
+0

在'data.frame(X1,Y2,Z2)''對象和y2''z2'沒有定義 –

回答

1

這裏是3D曲線的曲面代碼。
我使用add_trace代替add_lines繪製了3D線。

library(plotly) 
m_x = seq(-2, 2, .01) 
m_y = seq(-2, 2, .01) 
df = expand.grid(m_x, m_y) 
df['matrix'] = exp(-(df$Var1^2+df$Var2^2)) 
m_z = matrix(df$matrix, nrow = length(m_x), ncol = length(m_y)) 
m_df = list(m_x, m_y, m_z) 

x1 = seq(-2, 0, by=0.0202) 
y1 = runif(100, min=-0.03,max=0.03) 
z1 = exp(-(x1^2+y1^2)) 
df = data.frame(x1, y1, z1) 
names(df) <- c("df_x", "df_y", "df_z") 

colors = c("Blue", "Cyan", "Green", "Yellow", "Orange", "Red") 
p1 <- plot_ly(x = m_df[[1]], y = m_df[[2]], z = m_df[[3]], 
       colors = colors, color = m_df[[3]]) %>% add_surface() %>% 
    add_trace(x = ~df_x, y = ~df_y, z = ~df_z, data = df, 
      type="scatter3d", mode="lines", 
      line = list(color = "red", width = 4)) %>% 
    layout(title = "Hike_Example", 
     scene = list(aspectratio = list(x = 4, y = 4, z = 1))) 

p1 

enter image description here

+0

當我做add_trace,它看起來像它在創建兩個colorbars我的情節(一個用於3D地圖,另一個用於散點圖)。它們也是不同大小的顏色條。有沒有辦法忽略add_trace()顏色條? – Mike

+0

@Mike我看過你的照片了。這很奇怪,在我的Windows7 PC上用R 3.3.3和plotly_4.5.6我沒有這個問題。嘗試在'add_trace'和/或'plot_ly'中添加'showscale = FALSE'選項。讓我知道。 –

+0

將'showscale = False'添加到'plot_ly'聲明中,謝謝! – Mike