Могу ли я построить только трехмерные координаты, используя график? - PullRequest
0 голосов
/ 04 января 2019

Как я могу построить трехмерную координату без каких-либо точек на ней?Я попытался заменить z = z_data.as_matrix () на z = [] в следующем коде, но ничего не получил.

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')

data = [
    go.Surface(
        z=z_data.as_matrix()
    )
]
layout = go.Layout(
    title='Mt Bruno Elevation',
    autosize=False,
    width=500,
    height=500,
    margin=dict(
        l=65,
        r=50,
        b=65,
        t=90
    )
)
fig = go.Figure(data=data, layout=layout)
py.plot(fig, filename='elevations-3d-surface')

1 Ответ

0 голосов
/ 04 января 2019

Чтобы построить 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])

, который даст вам следующий график.

enter image description here

Полный код

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...