Графики с горизонтальной полосой, дающие неожиданные результаты - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь создать график с горизонтальной полосой, похожий на этот .

Я могу создать вертикальный график, но когда я меняю его на горизонтальный, график становится беспорядочным. Я пробую это двумя способами, используя go и px. Я не понимаю, в чем проблема, и не знаю, что делать дальше. Вот мой код:

Использование go:

import pandas as pd
import chart_studio.plotly as py
import plotly.graph_objects as go

dfs = pd.read_html('https://coronavirus.jhu.edu/data/mortality', header=0)
df = dfs[0]

df['Case-Fatality'] = list(map(lambda x: x[:-1], df['Case-Fatality'].values))

df['Case-Fatality'] = pd.to_numeric(df['Case-Fatality'], downcast='float')
df_sort = df.sort_values(by='Case-Fatality')
fig = go.Figure(go.Bar(
    x=df_sort['Country'],
    y=df_sort['Case-Fatality'],
    ))
fig.update_layout(
    title='',
    xaxis_title='',
    yaxis_title='')
fig.show()

Использование px:

import plotly.express as px
fig = px.bar(df_sort, x='Country', y = 'Case-Fatality', orientation='h')
fig.show()

Следуя документации plotly , Я должен иметь возможность добавить аргумент orientation='h' к go.bar или px.bar. Когда я это делаю, ошибки нет, но график выглядит некорректно.

Вот вертикальное, правильно построенное, но не в предпочтительной ориентации: enter image description here

Here is with the horizontal orientation, it looks the same with either go or px: введите описание изображения здесь

Любая помощь или руководство о том, почему это не работает, были бы очень признательны.

1 Ответ

2 голосов
/ 10 июля 2020

Измените значения x и y в go.bar или px.bar (все равно добавьте orientation = 'h').

Оба метода работают одинаково хорошо.

Результат:

введите описание изображения здесь

...