Я хотел бы создать составную гистограмму (в идеале в seaborn), но с удовольствием использую встроенные функции построения графиков pandas. Позвольте мне представить некоторые тестовые данные, чтобы прояснить ситуацию.
In [353]: import pandas as pd
In [354]: import seaborn as sns
In [355]: df = pd.DataFrame({"Cat":["A", "B","A","B","A","B","A","B","C"], "Time":[0,0,1,1,0,0,1,1,1], "ID":[0,0,0,0,1,1,1,1,1]})
In [356]: df
Out[356]:
Cat Time ID
0 A 0 0
1 B 0 0
2 A 1 0
3 B 1 0
4 A 0 1
5 B 0 1
6 A 1 1
7 B 1 1
8 C 1 1
In [357]: df.groupby(["ID","Cat"]).count()
Out[357]:
Time
ID Cat
0 A 2
B 2
1 A 2
B 2
C 1
In [358]:
Я хотел бы видеть здесь по оси X идентификатор, а по оси Y я получаю счетчик (столбец «Время»), сложенный по переменной Cat, например. для идентификатора 1 я хочу видеть сложенную цветную полосу с размерами 2, 2 и 1. Я пробовал следующее, но безуспешно:
похоже, что он не может работать с многоосью. Любая помощь очень ценится! РЕДАКТИРОВАТЬ
Это РЕДАКТИРОВАНИЕ призвано добавить мне проблем. У меня возникла проблема с размещением легенбокса за пределами окна построения графиков. Настоящий код, который я использую
Я хотел бы создать составную гистограмму (в идеале в seaborn), но с удовольствием использую встроенные функции построения графиков pandas. Позвольте мне представить некоторые тестовые данные, чтобы прояснить ситуацию. [code]In [353]: import pandas as pd
In [354]: import seaborn as sns
In [355]: df = pd.DataFrame({"Cat":["A", "B","A","B","A","B","A","B","C"], "Time":[0,0,1,1,0,0,1,1,1], "ID":[0,0,0,0,1,1,1,1,1]})
In [356]: df Out[356]: Cat Time ID 0 A 0 0 1 B 0 0 2 A 1 0 3 B 1 0 4 A 0 1 5 B 0 1 6 A 1 1 7 B 1 1 8 C 1 1
In [357]: df.groupby(["ID","Cat"]).count() Out[357]: Time ID Cat 0 A 2 B 2 1 A 2 B 2 C 1
In [358]: [/code] Я хотел бы видеть здесь по оси X идентификатор, а по оси Y я получаю счетчик (столбец «Время»), сложенный по переменной Cat, например. для идентификатора 1 я хочу видеть сложенную цветную полосу с размерами 2, 2 и 1. Я пробовал следующее, но безуспешно: [code]df.groupby(["ID","Cat"]).count().plot(kind="bar", stacked=True, x="ID") [/code] похоже, что он не может работать с многоосью. Любая помощь очень ценится! [b]РЕДАКТИРОВАТЬ[/b] Это [b]РЕДАКТИРОВАНИЕ[/b] призвано добавить мне проблем. У меня возникла проблема с размещением легенбокса за пределами окна построения графиков. Настоящий код, который я использую [code]p = so.Plot(df.astype({"Time": "category"}),x='Time', color='Category').add(so.Bar(), so.Count(), so.Stack()) fig, ax = plt.subplots(figsize=(2560/120, 1335/120)) today = dt.datetime.today().strftime("%Y%m%d") plt.grid() p.on(ax).save(f"{today}_barchart_sources_{c}.png") plt.close() [/code] [img]https://i.sstatic.net/GPyodm2Q.png[/img]
Я хотел бы создать составную гистограмму (в идеале в seaborn), но с удовольствием использую встроенные функции построения графиков pandas. Позвольте мне представить некоторые тестовые данные, чтобы прояснить ситуацию.
In : import pandas as pd
Я использую Blazor с Blazor Apex Charts, чтобы создавать диаграммы для информационной панели, над которой я работаю. Теперь у меня возникла небольшая проблема.
Веб-приложение основано на периоде. Под этим я подразумеваю показ только данных за...
См. мой код ниже.
Он создает сложную гистограмму типа яблок, проданных за месяц (с частотой просто 1 для каждой строки).
Я бы хотел, чтобы он был отсортирован по месяцам по возрастанию.
v[ ].groupby(...
См. мой код ниже.
Он создает сложную гистограмму типа яблок, проданных за месяц (с частотой просто 1 для каждой строки).
Я бы хотел, чтобы он был отсортирован по месяцам по возрастанию.
v[ ].groupby(...