Чтобы построить 3D-координаты в Plotly, вам нужно предоставить 3 входных списка / фрейма данных и т. Д. С координатами x
, y
и z
.
data = [
go.Scatter3d(
x=val_x,
y=val_y,
z=val_z,
mode='markers'
)
]
Вы можетеиспользуйте набор данных, связанный в вопросе, и преобразуйте его в такой список, например,
# Read data from a csv
z_data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/api_docs/mt_bruno_elevation.csv')
# totally inelegant approach to convert the dataframe to a dictionary to convert it to a list
z_dict = z_data.to_dict()
val_x = []
val_y = []
val_z = []
for x in z_dict:
for y in z_dict[x]:
val_x.append(x)
val_y.append(y)
val_z.append(z_dict[x][y])
, который даст вам следующий график.
Полный код
import plotly.offline as py
import plotly.graph_objs as go
import pandas as pd
# Read data from a csv
z_data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/api_docs/mt_bruno_elevation.csv')
# totally inelegant approach to convert the dataframe to a dictionary to convert it to a list
z_dict = z_data.to_dict()
val_x = []
val_y = []
val_z = []
for x in z_dict:
for y in z_dict[x]:
val_x.append(x)
val_y.append(y)
val_z.append(z_dict[x][y])
data = [
go.Scatter3d(
x=val_x,
y=val_y,
z=val_z,
mode='markers'
)
]
fig = go.Figure(data=data)
py.plot(fig, filename='elevations-3d-surface')