Python 如何更改虚线图的大小?

Python 如何更改虚线图的大小?,python,plotly,plotly-dash,Python,Plotly,Plotly Dash,我在Dash上的情节布局上遇到了困难。我用Dash生成的所有图似乎都是自动调整大小的,非常窄,这使得在没有创造性缩放的情况下很难实际查看数据 例如,当我在一个破折号上查看源代码时,它似乎计算出主绘图容器(svg容器)的高度为450px,图形本身的高度为270px(查看子绘图)。如果我能画出这个图,比如说700px,那就太好了 我的问题是:在短划线上调整图形尺寸的最佳方法是什么?我的第一个猜测是以某种方式附加一个样式表,但我不确定合适的css选择器将是什么 谢谢大家! 我通过将绘图的div作为子d

我在Dash上的情节布局上遇到了困难。我用Dash生成的所有图似乎都是自动调整大小的,非常窄,这使得在没有创造性缩放的情况下很难实际查看数据

例如,当我在一个破折号上查看源代码时,它似乎计算出主绘图容器(svg容器)的高度为450px,图形本身的高度为270px(查看子绘图)。如果我能画出这个图,比如说700px,那就太好了

我的问题是:在短划线上调整图形尺寸的最佳方法是什么?我的第一个猜测是以某种方式附加一个样式表,但我不确定合适的css选择器将是什么


谢谢大家!

我通过将绘图的div作为子div放置在父div中,然后设置父div的大小来实现这一点。类似这样:

# main parent div for the app
main_div = html.Div(children = [
    # sub-div for the plot
    html.Div(children = [
                dcc.Graph(id = 'my-plot'),
    ])
    ],
    # set the sizing of the parent div
    style = {'display': 'inline-block', 'width': '48%'})
随着你的应用程序越来越复杂,你可能需要设置更多的div嵌套才能工作。您也可以直接在绘图的sub div上设置
样式
,具体取决于您配置的方式


此外,我可能会建议您关注这里的官方Dash论坛,因为那里可能会有更多的用户,同时Dash开发人员自己也会经常发布帖子:

一个
图形
对象包含一个
图形
。每个
图形
都有
数据
布局
属性

您可以在
布局
中设置
高度

dcc.Graph(
    id="my-graph",
    figure={
        "data": [
            {"x": [1, 2, 3], "y": [4, 1, 2], "type": "bar"},
            {"x": [1, 2, 3], "y": [2, 4, 5], "type": "bar"},
        ],
        "layout": {
            "title": "My Dash Graph",
            "height": 700,  # px
        },
    },
)
根据,高度必须是大于或等于10的数字,其默认值为450(px)

请记住,您可以创建一个
图形
对象,然后在短划线回调中设置
图形

例如,如果
dcc.滑块的
值影响
图形的
属性,则您将拥有:

import plotly.graph_objs as go

dcc.Graph(id="my-graph")

@app.callback(
    output=Output("my-graph", "figure"),
    inputs=Input("slider", "value")])
def update_my_graph(value):
    data = go.Data(
        [
            go.Bar(x=[1, 2, 3], y=[4, 1, 2]),
            go.Bar(x=[1, 2, 3], y=[2, 4, 5]),
        ]
    layout = go.Layout(
        title="My Dash Graph",
        height=700
        )
    figure = go.Figure(data=data, layout=layout)
    return figure

或者,可以在父容器中更改视口大小,如:

dcc.Graph(id='my-graph',style={'width': '90vh', 'height': '90vh'}) 

这会将图形更改为浏览器视口高度的90%。您可以在此查看更多有关viewport的信息

这是最被低估的回复。谢谢,谢谢。希望对你有帮助。