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

时间:2016-03-21 10:38:16

标签: python plotly

我制作了一张中等成功的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)

使用Mock数据,它看起来像这样,轴没有变化,没有标签:

plotly example

1 个答案:

答案 0 :(得分:3)

根据docsxaxisyaxiszaxis for plotly中的3D图是Scene的一部分,而不是Layout。< / p>

示例:

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

Screenshot

另见this question