ValueError: для объекта типа plotly.graph_objs.Pie: 'xaxis' указано неверное свойство - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь построить 2 разных круговых диаграммы Plotly на 2 разных осях.Это мой код:

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'

Я искал решение в Интернете, но безрезультатно.

1 Ответ

0 голосов
/ 27 сентября 2018

Существует еще один способ построения подшаговых диаграмм.Вам просто нужно указать domain и annotation (если вы хотите поместить имя трассы в отверстие круговой диаграммы).

Код (на основе данных из примеров в графических документах):

# 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')

Выходные данные: Pie chart subplots Также предлагаем вам проверить, как создать кольцевые субплоты и построить субплоты по двум осям - ссылка для лучшегопонимание.

...