Próbuję wygenerować siatkę subplotów na podstawie obiektu grupy Pandy. Chciałbym, aby każdy dział był oparty na dwóch kolumnach danych dla jednej grupy obiektu groupby. Fałszywe zestaw danych:Wykreślanie grup Pandy grup za pomocą podpól i pętli
C1,C2,C3,C4
1,12,125,25
2,13,25,25
3,15,98,25
4,12,77,25
5,15,889,25
6,13,56,25
7,12,256,25
8,12,158,25
9,13,158,25
10,15,1366,25
Próbowałem następujący kod:
import pandas as pd
import csv
import matplotlib as mpl
import matplotlib.pyplot as plt
import math
#Path to CSV File
path = "..\\fake_data.csv"
#Read CSV into pandas DataFrame
df = pd.read_csv(path)
#GroupBy C2
grouped = df.groupby('C2')
#Figure out number of rows needed for 2 column grid plot
#Also accounts for odd number of plots
nrows = int(math.ceil(len(grouped)/2.))
#Setup Subplots
fig, axs = plt.subplots(nrows,2)
for ax in axs.flatten():
for i,j in grouped:
j.plot(x='C1',y='C3', ax=ax)
plt.savefig("plot.png")
Ale to generuje 4 identyczne wątków z wszystkich danych kreślone na każdym (patrz przykład wyjścia poniżej):
Chciałbym zrobić coś takiego, jak to naprawić:
for i,j in grouped:
j.plot(x='C1',y='C3',ax=axs)
next(axs)
ale otrzymuję ten błąd
AttributeError: 'numpy.ndarray' object has no attribute 'get_figure'
będę mieć szereg dynamicznych grup w obiekcie GroupBy chcę wykreślić, i wiele innych elementów niż fałszywych danych dostarczonych mam. Właśnie dlatego potrzebuję eleganckiego, dynamicznego rozwiązania, a każdy zestaw danych grupowych jest kreślony na oddzielnym podpunkcie.
To zadziałało fantastycznie, dziękuję! – fireitup