离线绘图忽略 plotly 中的布局参数 python API

Offline plot ignoring layout parameters in plotly python API

我正在制作一个 3D 表面图,取得了中等成功,但有些参数不响应我的标志,例如轴范围、标签和对数刻度,但有些参数会响应,例如总体标题和纵横比比率。我不明白这个问题,谁能看出我做错了什么?

谢谢

def make3dPlot(surfaceMatrix, regionStart, regionEnd):
        data = [go.Surface(z=surfaceMatrix)]
        #data = [go.Surface(z=[[1, 2, 3, 4, 9],[4, 1, 3, 7, 9],[5, 4, 7, 2, 9]])]
        layout = go.Layout(
            title=args.i,
            autosize=True,
            width=1600,
            height=1000,
            yaxis=dict(
                title='Particle Size',
                titlefont=dict(
                    family='Arial, sans-serif',
                    size=18,
                    color='lightgrey'
                ),
                type='log',
                autorange=True,
                #range=[regionStart, RegionEnd]
            ),
            xaxis=dict(
                title="Genomic Co-ordinates",
                titlefont=dict(
                    family='Arial, sans-serif',
                    size=18,
                    color='lightgrey'
                ),
                #type='log',
                #autorange=False,
                range=[10, 15]#regionStart, regionEnd]
            ),
            scene=dict(
                aspectratio=dict(x=3, y=1, z=1),
                aspectmode = 'manual'
            )
        )
        fig = go.Figure(data=data, layout=layout)


        plotly.offline.plot(fig)

模拟数据看起来像这样,轴不变,没有标签:

根据 docsxaxisyaxiszaxis,plotly 中的 3D 图是 Scene 的一部分,而不是 Layout .

示例:

from plotly.offline import iplot, init_notebook_mode
import numpy as np
from plotly.graph_objs import Surface, Layout, Scene
init_notebook_mode()

x, y = np.mgrid[-2*np.pi:2*np.pi:300j, -2:2:300j]
surface = Surface(
    x=x, y=y, z=-np.cos(x)+y**2/2
)

iplot([surface])

layout = Layout(scene=Scene(xaxis=dict(range=[-1,1])))
iplot(dict(data=[surface], layout=layout))

另见 this question