如何按行绘制饼图?
how to plot a pie chart row wise?
如果数据是这样的:
one two
123456 98765
456767 45678
123454 87654
那么如何为第 1 行值形成饼图,即值 123456
,98765
in pandas?
我尝试了互联网上给出的代码:
df.T.plot.pie(subplots=True, figsize=(9, 3))
和
import matplotlib.pyplot as plt
df.Data.plot(kind='pie')
fig = plt.figure(figsize=(6,6), dpi=200)
ax = plt.subplot(111)
df.Data.plot(kind='pie', ax=ax, autopct='%1.1f%%', startangle=270, fontsize=17)
但是这些代码不绘制行值而是给出列结果。
如果你想得到按行的饼图,你可以迭代行并绘制每一行:
In [1]: import matplotlib.pyplot as plt
...: import pandas as pd
...: import seaborn as sns
...:
...: sns.set(palette='Paired')
...: %matplotlib inline
In [2]: df = pd.DataFrame(columns=['one', 'two'], data=[[123456, 98765],[456767, 45678],[123454, 87654]])
In [3]: df.head()
Out[3]:
one two
0 123456 98765
1 456767 45678
2 123454 87654
In [4]: for ind in df.index:
...: fig, ax = plt.subplots(1,1)
...: fig.set_size_inches(5,5)
...: df.iloc[ind].plot(kind='pie', ax=ax, autopct='%1.1f%%')
...: ax.set_ylabel('')
...: ax.set_xlabel('')
...:
<matplotlib.figure.Figure at 0x1e8b4205c50>
<matplotlib.figure.Figure at 0x1e8b41f56d8>
<matplotlib.figure.Figure at 0x1e8b4437438>
编辑:
要仅绘制特定行,您可以使用 .iloc
选择要绘制的行(例如,第 0 行)。
fig, ax = plt.subplots(1,1)
fig.set_size_inches(5,5)
df.iloc[0].plot(kind='pie', ax=ax, autopct='%1.1f%%')
ax.set_ylabel('')
ax.set_xlabel('')
上的文档
如果数据是这样的:
one two
123456 98765
456767 45678
123454 87654
那么如何为第 1 行值形成饼图,即值 123456
,98765
in pandas?
我尝试了互联网上给出的代码:
df.T.plot.pie(subplots=True, figsize=(9, 3))
和
import matplotlib.pyplot as plt
df.Data.plot(kind='pie')
fig = plt.figure(figsize=(6,6), dpi=200)
ax = plt.subplot(111)
df.Data.plot(kind='pie', ax=ax, autopct='%1.1f%%', startangle=270, fontsize=17)
但是这些代码不绘制行值而是给出列结果。
如果你想得到按行的饼图,你可以迭代行并绘制每一行:
In [1]: import matplotlib.pyplot as plt
...: import pandas as pd
...: import seaborn as sns
...:
...: sns.set(palette='Paired')
...: %matplotlib inline
In [2]: df = pd.DataFrame(columns=['one', 'two'], data=[[123456, 98765],[456767, 45678],[123454, 87654]])
In [3]: df.head()
Out[3]:
one two
0 123456 98765
1 456767 45678
2 123454 87654
In [4]: for ind in df.index:
...: fig, ax = plt.subplots(1,1)
...: fig.set_size_inches(5,5)
...: df.iloc[ind].plot(kind='pie', ax=ax, autopct='%1.1f%%')
...: ax.set_ylabel('')
...: ax.set_xlabel('')
...:
<matplotlib.figure.Figure at 0x1e8b4205c50>
<matplotlib.figure.Figure at 0x1e8b41f56d8>
<matplotlib.figure.Figure at 0x1e8b4437438>
编辑:
要仅绘制特定行,您可以使用 .iloc
选择要绘制的行(例如,第 0 行)。
fig, ax = plt.subplots(1,1)
fig.set_size_inches(5,5)
df.iloc[0].plot(kind='pie', ax=ax, autopct='%1.1f%%')
ax.set_ylabel('')
ax.set_xlabel('')
上的文档