Как связать ось x + y диаграммы в виде столбцов с заданными столбцами данных на графике - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть небольшой фрейм данных, и я хочу извлечь из него диаграмму.Гистограмма будет иметь 2 входа оси Y для каждого значения оси X.Я использовал документированную графику, чтобы продвинуться как можно дальше, но почему-то я не могу связать столбцы с входными данными.

Это мой фрейм данных:

    Club            FTHG    FTAG
0   Augsburg        24      19
1   Bayern Munich   56      36
2   Dortmund        40      24
3   Ein Frankfurt   26      19
4   FC Koln         20      15

И код:

data = [go.Bar(
                x=Club.index, y=FTHG.values, name = 'Goals'
        )]

layout = go.Layout(title = 'Goals')


trace0 = go.Bar(
    x=[Club.index],
    y=[FTHG.index],
    name='Home Goals',
    marker=dict(
        color='rgb(49,130,189)'
    )
)
trace1 = go.Bar(
    x=[Club.index],
    y=[FTAG.index],
    name='Away Goals',
    marker=dict(
        color='rgb(204,204,204)',
    )
)

data = [trace0, trace1]
layout = go.Layout(
    xaxis=dict(tickangle=-45),
    barmode='group',
)

fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='angled-text-bar')

И ошибка:

> NameError                                 Traceback (most recent call
> last) <ipython-input-38-2dcf55a0f165> in <module>
>       1 data = [go.Bar(
> ----> 2                 x=Club.index, y=FTHG.values, name = 'Goals'
>       3         )]
>       4 
>       5 layout = go.Layout(title = 'Goals')
> 
> NameError: name 'Club' is not defined

Есть предложения?

Спасибо!

1 Ответ

0 голосов
/ 20 февраля 2019

Измените x и y.Если у вас есть DataFrame для панд и вы хотите назначить столбец - используйте df["Club"] или df.Club.Вы можете назначить df.index - в таком случае он будет таким списком, что [0,1,2,3,4].

Код:

from plotly.offline import plot
import plotly.graph_objs as go
import pandas as pd

df = pd.DataFrame({"Club": ["Augsburg", "Bayern Munich", "Dortmund",
                            "Ein Frankfurt", "FC Koln"],
                   "FTHG": [24, 56, 40, 26, 20],
                   "FTAG": [19, 36, 24, 19, 15]})

trace0 = go.Bar(
    x=df["Club"],
    y=df["FTHG"],
    name='Home Goals',
    marker=dict(
        color='rgb(49,130,189)'
    )
)
trace1 = go.Bar(
    x=df["Club"],
    y=df["FTAG"],
    name='Away Goals',
    marker=dict(
        color='rgb(204,204,204)',
    )
)

data = [trace0, trace1]
layout = go.Layout(
    xaxis=dict(tickangle=-45),
    barmode='group',
)

fig = go.Figure(data=data, layout=layout)
plot(fig, filename='angled-text-bar')

И вы получитехороший сюжет:

Stacked Bar Chart

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