Matplotlib画图操作

目录

折线图

散点图

柱状图

直方图

饼图


折线图

import matplotlib.pyplot as plt
import random
import matplotlib


def prepare_x_y():
    # 准备x,y数据
    x = range(1, 31)
    y = [random.uniform(5, 30) for i in x]
    return x, y


def create_fig(x, y):
    # 创建画布
    plt.figure(figsize=(20, 8), dpi=80)
    # 绘制图像
    plt.plot(x, y)


def change_x_y(x, y):
    # 设置x,y坐标刻度
    x_label = ['{}日'.format(i) for i in x]
    plt.xticks(x, x_label)  # 列表的内容和x轴结合
    plt.yticks(range(1, 40, 5))  # 0到40,每隔5步


def add_information():
    # 创建描述信息
    plt.xlabel('时间/日')
    plt.ylabel('温度/摄氏度')
    plt.title('南华大学3月份温度变化')
    # 添加网格
    plt.grid(linestyle='--', alpha=0.5)


def save_and_show():
    # # 保存
    plt.savefig('D:/数据分析/plot.png')
    # 显示并释放图像
    plt.show()


if __name__ == '__main__':
    # 设置字体为楷体
    matplotlib.rcParams['font.sans-serif'] = ['KaiTi']
    # 准备数据
    x, y = prepare_x_y()
    # 创建画布,绘制图像
    create_fig(x, y)
    # 改变x,y刻度
    change_x_y(x, y)
    # 添加描述信息
    add_information()
    # 展示与保存
    save_and_show()

散点图

import matplotlib.pyplot as plt
import random
import matplotlib


def prepare_x_y():
    # 准备x,y数据
    x = [1, 2, 3, 4, 5]
    y = [1, 2, 3, 4, 5]
    return x, y


def create_fig(x, y):
    # 创建画布
    plt.figure(figsize=(20, 8), dpi=300)
    # 绘制图像
    plt.scatter(x, y)


def change_x_y(x, y):
    # 设置x,y坐标刻度
    plt.xticks(range(0, 10, 1))
    plt.yticks(range(0, 10, 1))


def add_information():
    # 添加网格
    plt.grid(linestyle='--', alpha=0.5)


def save_and_show():
    # # 保存
    plt.savefig('D:/数据分析/scatter.png')
    # 显示并释放图像
    plt.show()


if __name__ == '__main__':
    # 设置字体为楷体
    matplotlib.rcParams['font.sans-serif'] = ['KaiTi']
    # 准备数据
    x, y = prepare_x_y()
    # 创建画布,绘制图像
    create_fig(x, y)
    # 改变x,y刻度
    change_x_y(x, y)
    # 添加描述信息
    add_information()
    # 展示与保存
    save_and_show()

柱状图

import matplotlib.pyplot as plt
import random
import matplotlib


def prepare_x_y():
    # 准备x,y数据
    Major_name = ["物联网", '大数据', '软件工程', '网络工程', '软卓']
    people_num = [60, 30, 180, 65, 40]
    return Major_name, people_num


def create_fig(x, y):
    # 创建画布
    plt.figure(figsize=(20, 8), dpi=80)
    # 绘制图像
    plt.bar(x, y, width=0.2)


def change_x_y(Major_name, y):
    # 设置x,y坐标刻度
    plt.xticks(range(len(x)))
    plt.yticks(range(0, 200, 10))


def add_information():
    plt.title('计算机学院20级各专业人数')
    # 添加网格
    plt.grid(linestyle='--', alpha=0.5)


def save_and_show():
    # # 保存
    plt.savefig('D:/数据分析/bar.png')
    # 显示并释放图像
    plt.show()


if __name__ == '__main__':
    # 设置字体为楷体
    matplotlib.rcParams['font.sans-serif'] = ['KaiTi']
    # 准备数据
    x, y = prepare_x_y()
    # 创建画布,绘制图像
    create_fig(x, y)
    # 改变x,y刻度
    change_x_y(x, y)
    # 添加描述信息
    add_information()
    # 展示与保存
    save_and_show()

直方图

import matplotlib.pyplot as plt
import random
import matplotlib


def prepare_x_y():
    # 准备x,y数据
    weight = [35, 35, 35, 40, 45, 45, 45, 50, 55, 60, 60, 60, 60, 60, 60, 60, 65, 70]
    return weight


def create_fig(x, ):
    # 创建画布
    plt.figure(figsize=(20, 8), dpi=100)
    # 组距
    distance = 2
    # 组数
    group_num = int((max(x) - min(x)) // distance)
    # 绘制图像
    plt.hist(x, bins=group_num)


def add_information():
    plt.title('计算机学院20级各专业人数')
    plt.xlabel('体重/kg')
    plt.ylabel('频数')
    # 添加网格
    plt.grid(linestyle='--', alpha=0.5)


def save_and_show():
    # # 保存
    plt.savefig('D:/数据分析/hist.png')
    # 显示并释放图像
    plt.show()


if __name__ == '__main__':
    # 设置字体为楷体
    matplotlib.rcParams['font.sans-serif'] = ['KaiTi']
    # 准备数据
    x = prepare_x_y()
    # 创建画布,绘制图像
    create_fig(x)
    # # 改变x,y刻度
    # change_x_y(x,y)
    # 添加描述信息
    add_information()
    # 展示与保存
    save_and_show()

饼图

import matplotlib.pyplot as plt
import random
import matplotlib


def prepare_x_y():
    # 准备x,y数据
    Major_name = ["物联网", '大数据', '软件工程', '网络工程', '软卓']
    people_num = [60, 30, 180, 65, 40]
    return Major_name, people_num


def create_fig(x, y):
    # 创建画布
    plt.figure(figsize=(20, 8), dpi=80)
    # 绘制图像
    plt.pie(y, labels=x, autopct='%.2f%%')


def change_x_y():
    # 设置为圆形
    plt.axis('equal')


def add_information():
    plt.title('计算机学院20级各专业人数')
    # # 添加网格
    # plt.grid(linestyle = '--',alpha = 0.5)


def save_and_show():
    # # 保存
    plt.savefig('D:/数据分析/bar.png')
    # 显示并释放图像
    plt.show()


if __name__ == '__main__':
    # 设置字体为楷体
    matplotlib.rcParams['font.sans-serif'] = ['KaiTi']
    # 准备数据
    x, y = prepare_x_y()
    # 创建画布,绘制图像
    create_fig(x, y)
    # 改变x,y刻度
    change_x_y()
    # 添加描述信息
    add_information()
    # 展示与保存
    save_and_show()

你可能感兴趣的:(python常用的数据分析模块,python)