Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Plotly:如何保持固定的图表高度大小,但表格行数可变_Python_Plotly_Bar Chart_Plotly Python - Fatal编程技术网

Python Plotly:如何保持固定的图表高度大小,但表格行数可变

Python Plotly:如何保持固定的图表高度大小,但表格行数可变,python,plotly,bar-chart,plotly-python,Python,Plotly,Bar Chart,Plotly Python,我有一个绘图式Python堆叠条形图,其中包含一个数据表,下面有几个数据行,这是我创建高度为430(高度=430)的图表布局的代码: 这是它用9个表行生成的图像: 这太完美了。现在,我想创建更多具有相同条形图高度区域的图表,但在其下方的表中有更多的行。但是,当我将高度值从430增加到800(高度=800)时,如下代码所示: layout = dict(title='Fruit & Veg', width=1200, height=

我有一个绘图式Python堆叠条形图,其中包含一个数据表,下面有几个数据行,这是我创建高度为430(高度=430)的图表布局的代码:

这是它用9个表行生成的图像:

这太完美了。现在,我想创建更多具有相同条形图高度区域的图表,但在其下方的表中有更多的行。但是,当我将高度值从430增加到800(高度=800)时,如下代码所示:

layout = dict(title='Fruit & Veg',
              width=1200,
              height=800,
              barmode='stack',
              xaxis=dict(domain=[0, 0.75]),
              yaxis=dict(domain=[0.65, 1]),
              showlegend=True,
              legend=dict(y=0.98, x=0.78, traceorder='normal', bgcolor='#E2E2E2', borderwidth=0),
              margin=go.layout.Margin(l=30, r=30, b=30, t=50, pad=0),
              template='none' 
          )
我确实在下面得到了更多的表格行(20而不是9),但条形图的高度也变得更高/更长,它似乎是图表整体高度的一个百分比,请参见图:

问题在于yaxis dict属性,但我不知道如何设置固定的条形图高度,而不管整个图表的高度+表格图像大小


关于如何正确设置此yaxis值,有什么想法吗?

好的,我可以回答我自己的问题,问题是我还在go中指定了一个固定高度。我忘记了表定义:

    go.Table(
      domain=dict(x=[0, 1],
                  y=[0, 0.6]),
      type='table',
      ...,
      ...
   )

我重新编写了代码,以便根据要显示的行数动态更改go.Table中的y值和go.Layout中的yaxis值。

我认为关键是域的设置,它决定了两个图形的比率。 本页的示例将非常有用。谢谢@r-初学者,我发现了我的问题,并在下面进行了解释,谢谢你的建议。
    go.Table(
      domain=dict(x=[0, 1],
                  y=[0, 0.6]),
      type='table',
      ...,
      ...
   )