Python ValueError:为plotly.graph_objs.Pie:';xaxis';
我试图在两个不同的轴上绘制两个不同的饼图。这是我的代码:Python ValueError:为plotly.graph_objs.Pie:';xaxis';,python,plot,plotly,visualization,subplot,Python,Plot,Plotly,Visualization,Subplot,我试图在两个不同的轴上绘制两个不同的饼图。这是我的代码: fig = tools.make_subplots(rows=1, cols=2) monday_freq = meta_df['monday_is_day_off'].value_counts() tuesday_freq = meta_df['tuesday_is_day_off'].value_counts() trace1 = go.Pie(labels=list(monday_freq.keys()), values=li
fig = tools.make_subplots(rows=1, cols=2)
monday_freq = meta_df['monday_is_day_off'].value_counts()
tuesday_freq = meta_df['tuesday_is_day_off'].value_counts()
trace1 = go.Pie(labels=list(monday_freq.keys()),
values=list(monday_freq.values), hole=0.7, hoverinfo='label+percent')
trace2 = go.Pie(labels=list(tuesday_freq.keys()),
values=list(tuesday_freq.values), hole=0.7, hoverinfo='label+percent')
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)
iplot(fig)
当我运行此操作时,会出现以下错误:
ValueError: Invalid property specified for object of type plotly.graph_objs.Pie: 'xaxis'
我一直在网上搜索解决方案,但没有结果。还有另一种方法可以绘制饼图子图。您只需要指定
域
和注释
(如果要将跟踪的名称放在饼图的孔中)
代码(基于plotly文档中示例的数据):
输出:
还建议您检查如何在两个轴上创建和绘制子图-以便更好地理解
# import all the necessaries libraries
import plotly.offline as py
import plotly.graph_objs as go
# change to your data
labels = ['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen']
labels2 = ['Helium','Lithium','Aluminium','Phosphorus']
values = [4500,2500,1053,500]
values2 = [6500,1500,2700,1286]
colors = ['#FEBFB3', '#E1396C', '#96D38C', '#D0F9B1']
colors2 = ['#29ECEC', '#EC7029', '#5E6B6B','#B6E44C']
# Create one trace for each day (Monday, Tuesday and so on)
trace1 = go.Pie(labels=labels, values=values,
hoverinfo='label+percent', textinfo='value',
textfont=dict(size=20),
name = 'Monday',
# Create hole in pie where we will place day name
hole = 0.2,
marker=dict(colors=colors,
line=dict(color='#000000', width=2)
),
# Set where first plot will be plotted
domain=dict(x=[0,0.5])
)
trace2 = go.Pie(labels=labels2, values=values2,
hoverinfo='label+percent', textinfo='value',
textfont=dict(size=20),
name='Tuesday',
# Create hole in pie where we will place day name
hole = 0.2,
marker=dict(colors=colors2,
line=dict(color='#000000', width=2)
),
# Set where second plot will be plotted
domain=dict(x=[0.5,1.0])
)
# Fill out the data wtih traces
data = [trace1,trace2]
# Create one annotation to each day (Monday, Tuesday and so on)
ann1 = dict(font=dict(size=20),
showarrow=False,
text='Monday',
# Specify text position (place text in a hole of pie)
x=0.23,
y=0.5
)
ann2 = dict(font=dict(size=20),
showarrow=False,
text='Tuesday',
# Specify text position (place text in a hole of pie)
x=0.78,
y=0.5
)
# Specify layout to set the title and annotations to our traces
layout = go.Layout(title ='Pie chart subplots',
annotations=[ann1,ann2],
# Hide legend if you want
#showlegend=False
)
# Create fig with data and layout
fig = go.Figure(data=data,layout=layout)
# Plot the plot and save the file in your Python script directory
py.plot(fig, filename='subplot_pie_chart.html')