尝试从下面的数据创建饼图和条形图

时间:2016-11-29 19:16:39

标签: python-2.7 pandas matplotlib seaborn

我们正在尝试根据以下代码创建饼图和条形图。有人可以帮忙吗?我们做错了什么?

非常感谢提供的任何帮助。感谢。

browser = ({'IE': [0.21], 'Chrome': [0.51], 'Firefox': [0.18], 'Safari': [0.06], 'Others': [0.04]})
x = pd.Series(browser)
y = pd.Series.sort_values(x)
z = pd.DataFrame(y)
fig, axes = plt.subplots(nrows=1, ncols=2)
z.plot(kind = 'pie', ax = axes[0,0])
z.plot(kind = 'bar', ax - axes[0,1])

Pie and Bar Chart

1 个答案:

答案 0 :(得分:1)

您的代码中存在一些错误。请参阅下面的注释代码,了解如何绘制饼图。

import pandas as pd
import matplotlib.pyplot as plt

# dont put the dictionary into a tuple
browser = {'IE': [0.21], 'Chrome': [0.51], 'Firefox': [0.18], 'Safari': [0.06], 'Others': [0.04]}
# dont use values inside a list as column values for a dataframe
browser2 = {}
[browser2.update({key : val[0]}) for key, val in browser.iteritems()]

x = pd.Series(browser2)
y = pd.Series.sort_values(x)
z = pd.DataFrame(y)
print z
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(8,4))
# you need to specify which column of the dataframe you want to plot (here 0)
z.plot(y=0, kind = 'pie', ax = axes[0])
z.plot(kind = 'bar', ax = axes[1])
axes[0].set_aspect("equal") # make aspect equal (such that circle is not eliptic)
#place the legend at a decent position
axes[0].legend(loc=1, bbox_to_anchor= (1,0.2), fontsize=11)
plt.tight_layout()
plt.show()

enter image description here