Matplotlib中如何绘制饼图和柱状图
时间: 2023-12-04 16:15:50 浏览: 87
要绘制饼图和柱状图,需要使用Matplotlib库。以下是绘制饼图和柱状图的代码示例:
绘制饼图:
```python
import matplotlib.pyplot as plt
# 数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
# 绘图
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
ax.axis('equal')
# 显示图形
plt.show()
```
这段代码会绘制一个简单的饼图,其中“labels”是每个部分的标签,“sizes”是每个部分的大小。
绘制柱状图:
```python
import matplotlib.pyplot as plt
# 数据
labels = ['A', 'B', 'C', 'D']
values = [15, 30, 45, 10]
# 绘图
fig, ax = plt.subplots()
ax.bar(labels, values)
# 显示图形
plt.show()
```
这段代码会绘制一个简单的柱状图,其中“labels”是每个柱子的标签,“values”是每个柱子的高度。
相关问题
利用matplotlib和pandas绘制有柱状图、折线图和饼图构成的组合图
好的,以下是一个简单的例子,展示如何利用matplotlib和pandas绘制有柱状图、折线图和饼图构成的组合图:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建数据
data = {'apple': [3, 2, 4, 5], 'orange': [1, 5, 2, 6], 'banana': [2, 3, 1, 4]}
df = pd.DataFrame(data, index=['Jan', 'Feb', 'Mar', 'Apr'])
# 创建子图
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
# 绘制柱状图
df.plot(kind='bar', ax=axs[0])
axs[0].set_title('Fruit sales')
# 绘制折线图
df.plot(kind='line', ax=axs[1])
axs[1].set_title('Fruit sales')
# 绘制饼图
plt.figure(figsize=(5,5))
df.sum().plot(kind='pie', autopct='%1.1f%%')
plt.title('Fruit sales')
# 显示图形
plt.show()
```
在这个例子中,我们创建了一个包含水果销售数据的DataFrame对象,并利用matplotlib的子图功能,在一个Figure对象中绘制了柱状图、折线图和饼图。其中,柱状图和折线图绘制在一个子图中,饼图绘制在另一个子图中。最后,我们调用show()函数显示图形。
需要注意的是,这只是一个简单的例子,实际的数据可能更加复杂,需要更多的数据处理和绘图技巧。但是,这个例子可以作为一个起点,帮助你开始利用matplotlib和pandas绘制组合图。
pandas读取csv查询15804002购买者的年龄,并统计男性数量与女性数量绘制饼图和柱状图
假设csv文件名为`data.csv`,其中包含`id`、`age`、`gender`三列数据,可以使用以下代码完成任务:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取csv文件
data = pd.read_csv('data.csv')
# 查询id为15804002的购买者的年龄
age = data.loc[data['id'] == 15804002, 'age'].values[0]
# 统计男性数量与女性数量
gender_counts = data['gender'].value_counts()
male_count = gender_counts['male']
female_count = gender_counts['female']
# 绘制饼图
labels = ['Male', 'Female']
sizes = [male_count, female_count]
colors = ['tab:blue', 'tab:pink']
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
plt.axis('equal')
plt.title('Gender Distribution')
plt.show()
# 绘制柱状图
x = ['Male', 'Female']
heights = [male_count, female_count]
colors = ['tab:blue', 'tab:pink']
plt.bar(x, heights, color=colors)
plt.title('Gender Distribution')
plt.show()
```
这段代码将首先读取csv文件,然后查询id为15804002的购买者的年龄,接着统计男性数量和女性数量并绘制饼图和柱状图。需要注意的是,绘制饼图和柱状图的代码是分别写的,需要分别运行才能看到两张图。
阅读全文