विधि मूल रूप से the other SO answer जैसा ही है; पंक्ति का योग करते हुए प्रत्येक पंक्ति को विभाजित:
df = df.divide(df.sum(axis=1), axis=0)
तो फिर तुम df.plot(kind='area', stacked=True, ...)
हमेशा की तरह कह सकते हैं।
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
np.random.seed(2015)
y = np.random.randint(5, 50, (10,3))
x = np.arange(10)
df = pd.DataFrame(y, index=x)
df = df.divide(df.sum(axis=1), axis=0)
ax = df.plot(kind='area', stacked=True, title='100 % stacked area chart')
ax.set_ylabel('Percent (%)')
ax.margins(0, 0) # Set margins to avoid "whitespace"
plt.show()
पैदावार
एक और संभावना है 'pandas.DataFrame.plot.area है()' – Dror