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进行简单的数据可视化,通过直方图和柱状图可以直观地了解数据的分布情况,为进一步的数据分析提供基础。

Python数据可视化:用Matplotlib绘制直方图和柱状图

原文地址: https://www.cveoy.top/t/topic/2dG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录