How to subplot pie chart in plotly?

北战南征 提交于 2020-01-06 07:01:12

问题


How can I subplot 'pie1' in 'fig', so it be located at 'the first' position. this is how I am doing it but it doesn't work out

    import pandas as pd
    import numpy as np
    import seaborn as sns
    import plotly.offline as pyp
    import plotly.graph_objs as go
    from plotly import tools
    import plotly.plotly as py
    from plotly.offline import iplot,init_notebook_mode
    from IPython.core.display import HTML
    import plotly.io

    df1=pd.read_excel('file.xlsx',sheet_name='sheet1',index=False)
    con_pivot=pd.pivot_table(con,index='Category',values=('Payment'),aggfunc='sum',margins=True,margins_name='Total')

    fig = tools.make_subplots(rows=2, cols=2, subplot_titles=('The first','3','2','4'))

    pie1=go.Pie(labels=con_pivot.index,values=con_pivot.values)
    fig.append_trace(pie1,1,1)
    pyo.plot(fig)

Any help help will be appreciated. Thank you


回答1:


You should look at domain parameter to make subplots from piecharts. For example, to make two piecharts in a 1 row (xaxis), you can specify how much place will occupy by first and second plots (from 0% to 50% for first and from 50% to 100% for second).

Code:

from plotly import tools
import plotly.offline as py
import plotly.graph_objs as go

trace1 = go.Pie(
     values=[16, 15, 12, 6, 5, 4, 42],
     labels=["US", "China", "European Union", "Russian Federation",
             "Brazil", "India", "Rest of World"
             ],
     domain=dict(x=[0, 0.5]),
     name="GHG Emissions",
     hoverinfo="label+percent+name",
)
trace2 = go.Pie(
     values=[27, 11, 25, 8, 1, 3, 25],
     labels=["US", "China", "European Union", "Russian Federation",
             "Brazil", "India", "Rest of World"
             ],
     domain=dict(x=[0.5, 1.0]),
     name="CO2 Emissions",
     hoverinfo="label+percent+name",
)
layout = go.Layout(title="Global Emissions 1990-2011",)
data = [trace1, trace2]
fig = go.Figure(data=data, layout=layout)
py.plot(fig, filename='simple-pie-subplot')

Output: You also can check documentation and found here example for 2x2 subplot if you need to.




回答2:


The way to achieve the side by side pie charts using the make_subplots function from plotly would be the following (Many thanks to @Oysiyl for the input data):

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


fig = make_subplots(rows=1, cols=2, specs=[[{"type": "pie"}, {"type": "pie"}]])


fig.add_trace(go.Pie(
     values=[16, 15, 12, 6, 5, 4, 42],
     labels=["US", "China", "European Union", "Russian Federation",
             "Brazil", "India", "Rest of World"
             ],
     domain=dict(x=[0, 0.5]),
     name="GHG Emissions"), 
     row=1, col=1)

fig.add_trace(go.Pie(
     values=[27, 11, 25, 8, 1, 3, 25],
     labels=["US", "China", "European Union", "Russian Federation",
             "Brazil", "India", "Rest of World"
             ],
     domain=dict(x=[0.5, 1.0]),
     name="CO2 Emissions"),
    row=1, col=2)

plot(fig)



来源:https://stackoverflow.com/questions/54975791/how-to-subplot-pie-chart-in-plotly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!