python利用matplotlib库进行简单的数据可视化分析

本篇利用python中的matplotlib库进行简单的数据可视化分析,数据来源于博客园中《2020年4月中国编程语言排行榜程序员工资统计,人工智能工资大跌》

数据描述

在这里插入图片描述

数据处理过程

饼状图:引入matplotlib库之后,设置中文显示,定义画布的大小。最后定义饼状图的标签以及设定各项离心n个半径,将数据放到一个列表之中,然后直接绘制饼图,并且设置哥哥扇形的颜色,使得图形看起来更加直观,最后定义饼状图标题,展示图形并保存。

直方图:引入库后设置中文显示,打开csv文件,提取csv的第一列,即编程语言的种类,随后提取平均工资坐在列,设置刻度标签并设置画布大小,添加横轴标签以及y轴标签,再添加图表标题,绘制直方图并展示。

箱线图:引入库并设置中文显示,定义五个编程语言的标签,输入五种编程语言的最低工资,工资中值以及最高工资,设置画布大小,然后设置参数绘制箱线图,设置箱线图标题并展示。

可视化展示

饼状图

在这里插入图片描述

import matplotlib.pyplot as plt

# 设置中文显示
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

# 将画布设定为正方形,则绘制的饼图是正圆
plt.figure(figsize=(6, 6))
# 定义饼状图的标签,标签是列表
lab = ['java', 'C++', 'C#', 'javascript', 'python', 'go', 'php', 'matlab', 'lua', 'r']
# 设定各项离心n个半径
explode = [0.01, 0.01, 0.01, 0, 0, 0, 0, 0, 0, 0]
# 数据
shuju = [89793, 83970, 35896, 31234, 25229, 21853, 11165, 5083, 2182, 2101]
# 绘制饼图
plt.pie(x=shuju,
        explode=explode,
        labels=lab,
        colors=['red', 'yellow', 'blue', 'red', 'yellow', 'blue', 'red', 'yellow', 'blue', 'yellow'],
        autopct='%1.1f%%',
        shadow=True)
plt.title('2020年四月中国编程语言排行榜')
plt.show()
plt.savefig()

直方图

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt

# 设置中文显示
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

data = np.loadtxt(r"E:\排行.csv", str, delimiter=",")
# 提取第一列,即编程语言的种类
language = data[1:, 0]
# 提取平均工资所在列
value = data[1:, 1].astype(float)
# 刻度标签
lab = ['java', 'C++', 'C#', 'javascript', 'python', 'go', 'php', 'matlab', 'lua', 'r']
# 设置画布
plt.figure(figsize=(10, 6))
# 绘制直方图
plt.bar(language[range(0, 10)], value, width=0.5)
# 添加横轴标签
plt.xlabel('language')
# 添加y轴标签
plt.ylabel('平均工资(元)')
plt.xticks(range(0, 10), language[range(0, 10)])
# 添加图表标题
plt.title('2020年四月中国编程语言排行榜直方图')
plt.show()

箱线图

在这里插入图片描述

import matplotlib.pyplot as plt

# 设置中文显示
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 定义标签
x1 = [5250, 12500, 35000]
x2 = [4525, 11500, 30000]
x3 = [5450, 16000, 45000]
x4 = [6500, 17500, 37500]
x5 = [5833, 17500, 45000]
plt.figure(figsize=(10, 8))
plt.boxplot((x1, x2, x3, x4, x5), labels=('java', 'C', 'python', 'matlab', 'r'),
            notch=None,  # 是否以凹口的形式展现箱线图,默认非凹口
            meanline=True,  # bool类型参数,是否用线的形式表示均值,默认为False
            patch_artist=True,  # 是否填充箱体的颜色
            showmeans=True,  # 要求用自定义颜色填充盒形图,默认白色填充
            boxprops={
    
    'color': 'black', 'facecolor': 'blue'})  # 设置箱体属性,如边框色和填充色
plt.title('2020年四月月工资箱线图')
plt.show()

猜你喜欢

转载自blog.csdn.net/weixin_48874360/article/details/118976200