Pandas - Графические участки с сгруппированными диаграммами - PullRequest
0 голосов
/ 14 июля 2020

У меня есть следующие два похожих фрейма данных, содержащих данные для двух разных команд

dataFrameA:

name         bat_pos_1 ing_1_runs bat_pos_2 ing_2_runs
jack           2           10            2         20
john           1           20            1         5

dataFrameB:

name         bat_pos_1 ing_1_runs bat_pos_2 ing_2_runs
jill           5           20            3         30
nancy          4            5            2         7

Я использую следующий код для визуализации сгруппированной столбчатой ​​диаграммы

import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots

figTeamARuns = go.Figure(data=[
    go.Bar(name='Ist Inning', x=dataFrameA['name'], y=dataFrameA['ing_1_runs']),
    go.Bar(name='2nd Inning', x=dataFrameA['name'], y=dataFrameA['ing_2_runs']),
   ])
figTeamARuns.update_layout(barmode='group')
figTeamARuns.show()

figTeamBRuns = go.Figure(data=[
    go.Bar(name='Ist Inning', x=dataFrameB['name'], y=dataFrameB['ing_1_runs']),
    go.Bar(name='2nd Inning', x=dataFrameB['name'], y=dataFrameB['ing_2_runs']),
   ])
figTeamBRuns.update_layout(barmode='group')
figTeamBRuns.show()

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

figFinalBatting = go.Figure()
figFinalBatting = make_subplots(rows=1, cols=2)

Я застрял в том, что делать дальше. Есть идеи?

1 Ответ

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

Я думаю, что docs здесь совершенно ясен. После того, как вы определите fig, вам нужно добавить каждую трассировку и указать с помощью row, col схемы подзаголовка, которую вы хотите, чтобы она отображалась.

import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots

fig = make_subplots(rows=1, cols=2)
fig.add_trace(
    go.Bar(name='Ist Inning',
           x=dataFrameA['name'],
           y=dataFrameA['ing_1_runs']),
    row=1, col=1)

fig.add_trace(
    go.Bar(name='2nd Inning',
           x=dataFrameA['name'],
           y=dataFrameA['ing_2_runs']),
    row=1, col=1)

fig.add_trace(
    go.Bar(name='Ist Inning',
           x=dataFrameB['name'],
           y=dataFrameB['ing_1_runs']),
    row=1, col=2)

fig.add_trace(
    go.Bar(name='2st Inning',
           x=dataFrameB['name'],
           y=dataFrameB['ing_2_runs']),
    row=1, col=2)

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