Mam następującą ramkę danych:
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 № 1Moż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()