/ / wykreśla pandasową ramkę danych wiersz po wierszu - pandy, matplotlib

wykreślając rząd danych pandy według rzędów - pandy, matplotlib

Mam następującą ramkę danych:

wprowadź opis obrazu tutaj

Chcę utworzyć wykresy kołowe po jednym dla każdego wiersza,Rzecz w tym, że mam problemy z kolejnością wykresów, chcę, aby każdy wykres miał figsize, powiedzmy 5,5, i że każdy wiersz w mojej ramce danych będzie rzędem działki w moich działach z indeksem jako tytułem.

Próbowałem wielu kombinacji i grałem z pyploy.subplots, ale nie udało się. byłby wdzięczny za jakąś pomoc.

Dzięki

Odpowiedzi:

2 dla odpowiedzi № 1

Możesz przetransponować swoją ramkę danych i użyć rodzaju pandy do kreślenia, tj. df.transpose().plot(kind="pie", subplots=True) lub iteruj przez rzędy podczas kreślenia podrzędnego.

Przykład użycia subplots:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# Recreate a similar dataframe
rows = ["rows {}".format(i) for i in range(5)]
columns = ["hits", "misses"]
col1 = np.random.random(5)
col2 = 1 - col1
data = zip(col1, col2)

df = pd.DataFrame(data=data, index=rows, columns=columns)

# Plotting

fig = plt.figure(figsize=(15,10))

for i, (name, row) in enumerate(df.iterrows()):
ax = plt.subplot(2,3, i+1)
ax.set_title(row.name)
ax.set_aspect("equal")
ax.pie(row, labels=row.index)

plt.show()

wykresy kołowe