如何调整Plotly Express面积图的大小?

5
我在Dash应用程序上创建了一个Plotly Express面积图表。图表可以正常工作,但是x轴上的第一个点和最后一个点似乎超出了图表范围,只能看到一半(如附图所示)。我尝试过更改图形的宽度和高度值,但是没有任何效果。
我是Python和Dash的新手,感谢任何帮助。我也在Stack Overflow上发布了我的第一个问题,如果有遗漏或未正确操作,请谅解。
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
import plotly.express as px
import pandas as pd
import pyodbc
import dash_bootstrap_components as dbc
from datetime import datetime as dt
from app import app




page2 = html.Div(
    [

     
        dbc.Row(
            [
                dbc.Col(
                        # dbc.Card(
                                    html.Div(

                                        id="opportunity_heatmap",
                                        className="chart_div pretty_container",
                                        children = [
                                            dcc.Graph(id='my_graph',
                                                    
                                                      config={
                                                        'staticPlot': False,     # True, False
                                                        'scrollZoom': True,      # True, False
                                                        'doubleClick': 'reset',  # 'reset', 'autosize' or 'reset+autosize', False
                                                        'showTips': True,       # True, False
                                                        'displayModeBar': 'hover',  # True, False, 'hover'
                                                        'watermark': False,
                                                        # 'modeBarButtonsToRemove': ['pan2d','select2d'],
                                                    },
                                                )
                                            ]
                                    ),
                                # color="light", inverse=True),
                    md=12,
                ),
             
            ],
            no_gutters=True,
        ),

    
          

    ]
)




@app.callback(
    Output('my_graph','figure'),
    [Input('my_dropdown','value')]
)

def build_graph(trendGraph):

    dff=SQL_data
 



fig = px.area(dff, x="DeploymentDate", y="DeploymentID",  text='DeploymentID', color = 'DeploymentType' ,template='plotly_white'
                    ,category_orders={'DeploymentDate':['January-2019','February-2019','March-2019','April-2019','May-2019','June-2019','July-2019','August-2019','September-2019','October-2019','November-2019','December-2019','January-2020','February-2020','March-2020','April-2020','May-2020','June-2020','July-2020','August-2020','September-2020','October-2020','November-2020','December-2020','January-2021','February-2021']})

fig.update_layout(yaxis={'title':'No. of deployments'},
                    title={'text':'Deployments Trend',
                    'font':{'size':28},'x':0.5,'xanchor':'center'},
                    autosize=True,)
    
    return fig


def get_page2():
    return page2
1个回答

2
在绘图中,不能让绘制物超出网格布局,否则当缩放时,我们不仅会看到文本值,还会看到整个图形延伸到网格之外。因此,唯一的方法是稍微缩小一点,这意味着需要相应地初始化图形的x_range。想法是从相应的数据框列中取最小和最大值,并根据需要扩展该范围。例如,在此处添加4年可完全显示y值(x轴上通常使用年份,请参见https://plotly.com/python/filled-area-plots/)。
fig = px.area(
    df,
    x='year',
    y=y,
    color="continent",
    line_group="country",
    text=y,
    range_x=[df['year'].min()-2, df['year'].max()+2]
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接