python123 绘制子图图形
时间: 2023-07-25 10:19:39 浏览: 247
可以使用 Matplotlib 库中的 `subplot()` 函数绘制子图图形。该函数的用法如下:
```python
import matplotlib.pyplot as plt
# 绘制 2x2 的子图,选中第 1 个子图
plt.subplot(2, 2, 1)
# 在第 1 个子图中绘制柱状图
plt.bar([1, 2, 3], [4, 5, 6])
# 绘制 2x2 的子图,选中第 2 个子图
plt.subplot(2, 2, 2)
# 在第 2 个子图中绘制折线图
plt.plot([1, 2, 3], [4, 5, 6])
# 绘制 2x2 的子图,选中第 3 个子图
plt.subplot(2, 2, 3)
# 在第 3 个子图中绘制散点图
plt.scatter([1, 2, 3], [4, 5, 6])
# 绘制 2x2 的子图,选中第 4 个子图
plt.subplot(2, 2, 4)
# 在第 4 个子图中绘制饼图
plt.pie([4, 5, 6])
```
其中,`subplot()` 函数的参数分别表示子图的行数、列数和选中的子图编号。在选中的子图中可以绘制相应的图形。以上示例中绘制了四个子图,分别是柱状图、折线图、散点图和饼图。
相关问题
如何用python在直方图的子图中设置距离
要在直方图的子图中设置距离,可以使用matplotlib库中的subplot函数来创建子图,并使用subplots_adjust函数来设置子图之间的间距。
以下是一个示例代码,演示如何使用subplot和subplots_adjust函数来创建具有间距的直方图子图:
```
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
np.random.seed(123)
data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(2, 1, 1000)
# 创建子图
fig, axs = plt.subplots(1, 2, figsize=(8, 4), sharey=True)
# 绘制直方图
axs[0].hist(data1, bins=20, color='blue', alpha=0.5)
axs[1].hist(data2, bins=20, color='red', alpha=0.5)
# 调整子图间距
plt.subplots_adjust(wspace=0.2)
# 显示图形
plt.show()
```
在这个例子中,我们首先生成了两个正态分布的数据集,然后使用subplot函数创建了一个包含两个子图的图形。我们将sharey参数设置为True,以确保两个子图具有相同的y轴刻度。
接下来,我们使用hist函数在每个子图中绘制直方图。我们设置了bins参数为20,以将数据分成20个区间,并将alpha参数设置为0.5,以使直方图更容易看到。
最后,我们使用subplots_adjust函数来设置子图之间的间距。我们将wspace参数设置为0.2,以将子图之间的水平间距设置为20%的图形宽度。
运行代码后,将显示两个具有间距的直方图子图。
Python根据性别中的男女属性绘制各省份男女人数的堆叠柱形图,使用seaborn库,把该图放入plt.subplot(2,2,4)中
以下代码实现了该功能:
```python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('province.csv')
# 绘制堆叠柱形图
sns.set(style='whitegrid')
sns.barplot(x='province', y='num', hue='gender', data=df)
plt.xticks(rotation=90)
plt.xlabel('省份')
plt.ylabel('人数')
plt.title('各省份男女人数')
plt.tight_layout()
# 放入子图中
plt.subplot(2,2,4)
plt.show()
```
其中,`province.csv`文件中包含了各省份的男女人数数据,格式如下:
```
province,gender,num
北京市,男,555
北京市,女,444
天津市,男,333
天津市,女,222
河北省,男,123
河北省,女,456
...
```
首先,使用`pandas`库读取数据。然后,使用`seaborn`库中的`barplot`函数绘制堆叠柱形图,其中`x`、`y`和`hue`参数分别表示横轴、纵轴和分类变量。接着,对图形进行一些格式设置,例如旋转横轴标签、添加坐标轴标签和标题等。最后,使用`plt.subplot(2,2,4)`将图形放入第四个子图中,并使用`plt.show()`显示图形。
阅读全文