Использование сюжета для построения графика - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь использовать заговор, как я могу преобразовать его в тот же заговор в заговор.

# Draw a nested barplot to show total loan amount for state and year
plt.style.use('bmh')
g = sns.factorplot(x="State", y="Loan_Amount_000", hue="As_of_Year", data=total_amount_group_year,
                   kind="bar",size=6, palette=sns.color_palette(flatui))
g.despine(left=True)
g.set_ylabels("Total Loan Amount",fontsize=15)
g.set_xlabels("State",fontsize=15)
g.set(title="Total Loan Amount aggregated by State and Year")
g.set_yticklabels(fontsize=15)
g.set_xticklabels(fontsize=15)

enter image description here

Я использую код ниже, но ничего не отображается.

import cufflinks as cf
import plotly.plotly  as py
import plotly.graph_objs as go

data = [go.Bar(x=total_amount_group_year['State'],
y=[total_amount_group_year.loc[total_amount_group_year['As_of_Year']==2012]['Loan_Amount_000'],
  total_amount_group_year.loc[total_amount_group_year['As_of_Year']==2013]['Loan_Amount_000'],
  total_amount_group_year.loc[total_amount_group_year['As_of_Year']==2014]['Loan_Amount_000']])]

layout = go.Layout(title='Iris Dataset - Species',
xaxis=dict(title='Iris Dataset - Species'),
yaxis=dict(title='Count')
)

fig = go.Figure(data=data, layout=layout)
py.iplot(fig)

Это мой фрейм данных, также показывающий индекс. фрейм данных - это фрейм данных pandas, подмножество другого фрейма данных pandas.

State   As_of_Year  Loan_Amount_000
9   VA  2012    86144.960
10  VA  2013    72210.009
6   MD  2012    54095.591
11  VA  2014    48920.527
7   MD  2013    43640.475
8   MD  2014    28235.685
0   DC  2012    8368.582
1   DC  2013    7092.372
12  WV  2012    6023.641
13  WV  2013    5838.763
3   DE  2012    5253.819
2   DC  2014    5044.787
14  WV  2014    4984.216
4   DE  2013    4598.409
5   DE  2014    2991.961

1 Ответ

0 голосов
/ 28 апреля 2018

Надеюсь, я скопировал значения слишком правильно. Я полагаю, что проблема заключается в количестве аргументов, которые вы пытаетесь передать y=. В вашем ключевом слове x= также используется фрейм данных с индексом длины, отличным от y=, который я не уверен, что заговорщик может его интерпретировать. Вы можете использовать следующий цикл for для генерации требуемых трассировок данных, что приводит к следующей диаграмме.

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

py.init_notebook_mode(connected=True) 

Years = [2012, 2013, 2014]

data = []

for Year in Years:

    data.append(go.Bar(x = total_amount_group_year.loc[total_amount_group_year['As_of_Year']==Year]['State'],
            y=total_amount_group_year.loc[total_amount_group_year['As_of_Year']==Year]['Loan_Amount_000'],
            name=Year))

fig=go.Figure(data=data)
py.iplot(fig)

Plotly 1

В качестве альтернативы вы можете использовать запонки, которые, я полагаю, вы уже установили. Это, однако, требует, чтобы вы изменили свой фрейм данных для создания сгруппированной гистограммы. Следующий код приводит к приведенной ниже таблице.

import cufflinks as cf

df_pivot = total_amount_group_year.pivot(index='State', columns='As_of_Year', values='Loan_Amount_000').sort_values(2012, ascending=False)

cf.set_config_file(offline=True, world_readable=False, theme='ggplot')

df_pivot.iplot(kind='bar')

enter image description here

enter image description here

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...