当前位置 博文首页 > Python数据可视化之绘制柱状图和条形图

    Python数据可视化之绘制柱状图和条形图

    作者:@阿证1024 时间:2021-08-13 18:53

    目录
    • 一、实验目的:
    • 二、实验内容:
    • 三、实验过程(附结果截图):

    一、实验目的:

    1.掌握Python中柱状图、条形图绘图函数的使用

    2.利用上述绘图函数实现数据可视化

    二、实验内容:

    1.练习python中柱状图、条形图绘图函数的用法,掌握相关参数的概念

    2.根据步骤一绘图函数要求,处理实验数据

    3.根据步骤二得到的实验数据,绘制柱状图、条形图

    4.练习如何通过调整参数使图片呈现不同效果,例如颜色、图例位置、背景网格、坐标轴刻度和标记等

    三、实验过程(附结果截图):

    1. 练习python中柱状图、条形图绘图函数的用法,掌握相关参数的概念

    (1)练习绘制条形图函数的使用

    import matplotlib.pyplot as plt
    
    # 这两行代码解决 plt 中文显示的问题
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    
    waters = ('碳酸饮料', '绿茶', '矿泉水', '果汁', '其他')
    buy_number = [6, 7, 6, 1, 2]
    
    plt.bar(waters, buy_number)
    plt.title('男性购买饮用水情况的调查结果')
    
    plt.show()
    

    在这里插入图片描述

    2. 根据步骤一绘图函数要求,处理实验数据

    (1)实验数据如下

    饮料的种类:'碳酸饮料', '绿茶', '矿泉水', '果汁', '其他'
    饮料的购买量:6, 7, 6, 1, 2

    3. 根据步骤二得到的实验数据,绘制柱状图、条形图

    (1)绘制条形图

    import matplotlib.pyplot as plt
    
    # 这两行代码解决 plt 中文显示的问题
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    
    waters = ('碳酸饮料', '绿茶', '矿泉水', '果汁', '其他')
    buy_number = [6, 7, 6, 1, 2]
    
    plt.barh(waters, buy_number)  # 横放条形图函数 barh
    plt.title('男性购买饮用水情况的调查结果')
    
    plt.show()
    

    在这里插入图片描述

    4. 练习如何通过调整参数使图片呈现不同效果,例如颜色、图例位置、背景网格、坐标轴刻度和标记等

    (1)若要将男生与女生的调查情况画出两个条形图一块显示,则可以使用 bar 或 barh 函数两次,并调整 bar 或 barh 函数的条形图位置坐标以及相应刻度,使得两组条形图能够并排显示

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 这两行代码解决 plt 中文显示的问题
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    
    # 输入统计数据
    waters = ('碳酸饮料', '绿茶', '矿泉水', '果汁', '其他')
    buy_number_male = [6, 7, 6, 1, 2]
    buy_number_female = [9, 4, 4, 5, 6]
    
    bar_width = 0.3  # 条形宽度
    index_male = np.arange(len(waters))  # 男生条形图的横坐标
    index_female = index_male + bar_width  # 女生条形图的横坐标
    
    # 使用两次 bar 函数画出两组条形图
    plt.bar(index_male, height=buy_number_male, width=bar_width, color='b', label='男性')
    plt.bar(index_female, height=buy_number_female, width=bar_width, color='g', label='女性')
    
    plt.legend()  # 显示图例
    plt.xticks(index_male + bar_width/2, waters)  # 让横坐标轴刻度显示 waters 里的饮用水, index_male + bar_width/2 为横坐标轴刻度的位置
    plt.ylabel('购买量')  # 纵坐标轴标题
    plt.title('购买饮用水情况的调查结果')  # 图形标题
    
    plt.show()
    

    在这里插入图片描述

    jsjbwy