# 绘制年龄分布直方图 sns.histplot(data=df, x="AGE", kde=True) # 绘制性别比例条形图 sns.countplot(data=df, x="GENDER") # 绘制抽烟情况饼图 sns.catplot(data=df, kind="count", x="SMOKING") 放在一张画布里
时间: 2024-02-29 16:53:25 浏览: 23
好的,可以使用Matplotlib库来将这些图形放在一张画布里。以下是示例代码:
```python
import matplotlib.pyplot as plt
import seaborn as sns
# 加载数据
df = ...
# 创建画布和子图
fig, axs = plt.subplots(ncols=3, figsize=(12, 4))
# 绘制年龄分布直方图
sns.histplot(data=df, x="AGE", kde=True, ax=axs[0])
# 绘制性别比例条形图
sns.countplot(data=df, x="GENDER", ax=axs[1])
# 绘制抽烟情况饼图
sns.catplot(data=df, kind="count", x="SMOKING", ax=axs[2])
# 设置子图标题
axs[0].set_title("Age Distribution")
axs[1].set_title("Gender Ratio")
axs[2].set_title("Smoking Status")
# 调整子图间距和布局
fig.tight_layout()
# 显示图形
plt.show()
```
这段代码将创建一个包含三个子图的画布,分别绘制年龄分布直方图、性别比例条形图和抽烟情况饼图。使用`ax`参数指定每个子图的位置,并使用`set_title()`方法设置子图标题。最后,使用`tight_layout()`方法调整子图间距和布局,并使用`show()`方法显示图形。
相关问题
# 设置子图 fig, axs = plt.subplots(nrows=2, ncols=3, figsize=(15, 10)) # 绘制分布密度图 sns.histplot(data=data, x="PM2.5", bins=20, kde=True) sns.histplot(data=data, x="PM10", bins=20, kde=True) sns.histplot(data=data, x="SO2", bins=20, kde=True) sns.histplot(data=data, x="NO2", bins=20, kde=True) sns.histplot(data=data, x="CO", bins=20, kde=True) sns.histplot(data=data, x="O3", bins=20, kde=True) plt.show()优化这段代码,各可视化结果分别显示在子图中
以下是优化后的代码,其中每个子图都有标题,x轴标签和y轴标签:
```python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_excel('北京市空气数据.xlsx',usecols=['PM2.5','PM10','SO2','NO2','CO','O3'])
# 设置子图
fig, axs = plt.subplots(nrows=2, ncols=3, figsize=(15, 10))
# 绘制子图
sns.histplot(data=data, x="PM2.5", bins=20, kde=True, ax=axs[0,0])
axs[0,0].set_title("PM 2.5 Distribution")
axs[0,0].set_xlabel("PM 2.5")
axs[0,0].set_ylabel("Count")
sns.histplot(data=data, x="PM10", bins=20, kde=True, ax=axs[0,1])
axs[0,1].set_title("PM 10 Distribution")
axs[0,1].set_xlabel("PM 10")
axs[0,1].set_ylabel("Count")
sns.histplot(data=data, x="SO2", bins=20, kde=True, ax=axs[0,2])
axs[0,2].set_title("SO2 Distribution")
axs[0,2].set_xlabel("SO2")
axs[0,2].set_ylabel("Count")
sns.histplot(data=data, x="NO2", bins=20, kde=True, ax=axs[1,0])
axs[1,0].set_title("NO2 Distribution")
axs[1,0].set_xlabel("NO2")
axs[1,0].set_ylabel("Count")
sns.histplot(data=data, x="CO", bins=20, kde=True, ax=axs[1,1])
axs[1,1].set_title("CO Distribution")
axs[1,1].set_xlabel("CO")
axs[1,1].set_ylabel("Count")
sns.histplot(data=data, x="O3", bins=20, kde=True, ax=axs[1,2])
axs[1,2].set_title("O3 Distribution")
axs[1,2].set_xlabel("O3")
axs[1,2].set_ylabel("Count")
# 显示子图
plt.show()
```
plt.figure(figsize=(8,5)) sns.histplot(train_data['age'],kde=True) plt.title('Age',fontsize=20) plt.show()
你的代码是用来绘制一个直方图来显示年龄(age)的分布情况。让我逐行解释你的代码:
```python
plt.figure(figsize=(8,5))
```
这行代码创建了一个新的图形,并设置了图形的尺寸为8x5英寸。
```python
sns.histplot(train_data['age'], kde=True)
```
这行代码使用Seaborn库的`histplot`函数绘制了一个直方图,并将`train_data` DataFrame中的'age'列作为数据进行可视化。`kde=True`参数表示在直方图上显示核密度估计。
```python
plt.title('Age', fontsize=20)
```
这行代码设置了图形的标题为"Age",并将标题文字大小设置为20。
```python
plt.show()
```
最后一行代码显示了绘制的图形。
请确保已经导入了必要的库(如Matplotlib和Seaborn)以及正确加载了数据。如果还有其他问题,请继续提问。