Python数据可视化:用Matplotlib绘制直方图和柱状图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
def test():
data_url = '/data/workspace/myshixun/step1/train.csv'
df = pd.read_csv(data_url)
S = df[df.Survived == 1]
D = df[df.Survived == 0]
# 绘制根据S、D的第9列数据绘制直方图
plt.hist([S.iloc[:, 9], D.iloc[:, 9]], label=['Survived', 'Not Survived'])
plt.legend()
plt.savefig('/data/workspace/myshixun/step1/picture2/直方图.png')
# 绘制柱状图
sexNew = df.groupby(['Sex', 'Survived'])['Survived'].count().unstack()
sexNew.plot(kind='bar', stacked=True)
plt.savefig('/data/workspace/myshixun/step1/picture2/柱状图.png')
plt.show()
img1 = mpimg.imread('/data/workspace/myshixun/step1/picture2/直方图.png')
img2 = mpimg.imread('/data/workspace/myshixun/step1/picture2/柱状图.png')
plt.subplot(121), plt.imshow(img1)
plt.subplot(122), plt.imshow(img2)
plt.savefig('/data/workspace/myshixun/step1/picture2/特征选择.png')
test()
这段代码首先加载了泰坦尼克号数据集,并根据'Survived'列将其分为两组。
绘制直方图:
plt.hist()函数用于绘制直方图,它接受一个列表作为参数,列表中的每个元素代表一组数据。S.iloc[:, 9]和D.iloc[:, 9]分别选取了'Survived'为1和0的两组数据的第9列数据。plt.legend()用于显示图例。
绘制柱状图:
df.groupby(['Sex', 'Survived'])['Survived'].count().unstack()按照 'Sex' 和 'Survived' 对数据进行分组计数,并转换为适合绘制堆叠柱状图的格式。sexNew.plot(kind='bar', stacked=True)使用 pandas 的绘图功能绘制堆叠柱状图,展示不同性别乘客的生存情况。
最后,代码将生成的直方图和柱状图保存为图片,并使用 plt.subplot() 函数将它们绘制在一张图中。
这段代码展示了如何使用Python进行简单的数据可视化,通过直方图和柱状图可以直观地了解数据的分布情况,为进一步的数据分析提供基础。
原文地址: https://www.cveoy.top/t/topic/2dG 著作权归作者所有。请勿转载和采集!