简体   繁体   English

如何更改子图大小并减少子图之间的空间?

[英]How to change subplot size and decrease space between subplot?

I created a subplot with plotly and need some advise on formating.我用 plotly 创建了一个子图,需要一些关于格式化的建议。

How to adjust the piechart so that there is no overlap between labels and title?如何调整饼图,使标签和标题之间没有重叠? Sure i can just columns_width and rows_height but the overlap remains.当然我可以只使用columns_widthrows_height但重叠仍然存在。 Moreover, is there function similiar to matplotlibs hspace/wspace?此外,是否有类似于 matplotlibs hspace/wspace 的 function?

Code:代码:

from plotly.subplots import make_subplots
import plotly.graph_objects as go

years = [1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988,
         1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
         1998, 1999 ,2000 ,2001, 2002, 2003, 2004, 2005, 2006, 
         2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
         2016, 2017, 2018, 2019, 2020]
freq = [173,1368,2238,4135,5455,6280,7470,6580,7537,8781,10894,14788,20562,27637,
        32446,32665,30374,28234,24235,22312,16817,20222,24080,30398,30230,27462,
        33582,28908,31648,26579,29121,31216,34574,34271,32570,32531,43390,46761,
        55920,34675,0]

values_in = [872641, 13994, 39055, 8985]
labels_in = ['Company', 'Goverment (NGO)', 'Individual', 'University']

values_cty = [297286, 175039, 170002, 66060, 35678, 31959, 26268, 24724, 22058, 17902]
labels_cty = ['Japan', 'Germany', 'USA', 'France' ,'Italy' ,'Switzerland' , 'Korea',
          'Great Brtian', 'Netherlands', 'China(PRC)']

fig = make_subplots(
    rows=2, cols=2,
    specs=[[{"colspan": 2}, None],[{'type':'pie'}, {'type':'pie'}]],
    subplot_titles=("Patents", "Institutions","Countries"))

fig.add_trace(go.Bar(x=years, y=freq),row=1,col=1)

fig.add_trace(go.Pie(
     values= values_in,
     labels=labels_in,
     domain=dict(x=[0, 0]),
     ), 
     row=2, col=1)


fig.add_trace(go.Pie(
     values=values_cty,
     labels=labels_cty,
     domain=dict(x=[0.5,1]),
     ),
    row=2, col=2)

fig.update_layout(showlegend=False)



fig.show()

在此处输入图像描述

for the first part of your question, see this对于您问题的第一部分,请参阅

The gist: you can adjust the subplot's title position by playing with the value of y :要点:您可以通过使用y的值来调整子图的标题 position :

fig.layout.annotations[1].update(y=0.5)

Regarding the second part of your question, in fig.make_subplots() you can specify horizontal_spacing and vertical_spacing .关于问题的第二部分,在fig.make_subplots()中,您可以指定 Horizo horizontal_spacingvertical_spacing They are both given as a fraction of total plot size.它们都作为总 plot 大小的一部分给出。

In your case, you might have to increase the vertical spacing to allow the subplot title to fit.在您的情况下,您可能必须增加垂直间距以允许子图标题适合。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM