Matplotlib实现数据可视化

这篇具有很好参考价值的文章主要介绍了Matplotlib实现数据可视化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Matplotlib是Python中应用较为广泛的绘图工具之一,首次发布于2007年。它在函数设计上参考了MATLAB,因此名字以"Mat"开头,中间的"plot"代表绘图功能,结尾的"lib"表示它是一个集合。Matplotlib支持众多图形的绘制

Matplotlib绘图流程

  1. 准备数据
  2. 添加内容
  3. 绘制图形
  4. 保存/显示

一、折线图

1、实现AQI走势折线图

 import matplotlib.pyplot as plt
 import numpy as np
 ​
 plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文格式
 plt.rcParams['axes.unicode_minus'] = False
 # 1、准备数据
 data = np.loadtxt('../数据集/aqi_new.csv', delimiter=',', skiprows=1)
 x = data[:31, 2]  # 日期
 y = data[:31, -1]  # AQI
 # 2、添加内容
 plt.title("2017年1月份AQI走势图") 
 plt.xlabel("日期")                 
 plt.ylabel("AQI的值")     
 x_label = [str(int(i)) for i in x]  # 设置x轴名称
 plt.xticks(x, x_label)  # 设置x轴对应的刻度名称
 # 3、绘制图形
 plt.plot(x,y,c='red')
 # 4、显示图形
 plt.show()

常用标签和图形设置函数:

函数名 描述
plt.title("标题内容") 添加标题,可以指定标题名称、位置、颜色、字体大小
plt.xlabel("名称") 添加X轴名称
plt.ylabel("名称") 添加Y轴名称
plt.xlim(left,right) 指定当前图形X轴的范围,即确定一个数值区间
plt.ylim(left,right) 指定当前图形Y轴的范围,即确定一个数值区间
plt.xticks(ticks,labels,rotation) 获取或设置X轴的当前刻度位置和标签。ticks刻度值,列表型。labels:放置在给定刻度线位置的标签。rotation:倾斜角度
plt.yticks(ticks,labels) 获取或设置Y轴的当前刻度位置和标签
plt.legend(title,loc) 显示 图例。title:图例添加标题,列表型。loc:图例的位置,可以设置为'beast','upper right','upper left','lower left','lower right','right','center left','center right','lower center','upper center','center'
plt.grid() 显示网格线
plt.savefig() 保存为图片

2、图形的优化和美化

plot()函数的常用参数:

 plot(*args, scalex=True, scaley=True, data=None, **kwargs)
参数 描述
*args 一个可变位置参数
**kwargs 一个可变长关键字参数。下面的x、y、fmt、c/color都属于可变长参数
x,y X轴和Y轴对应的数据。数组或列表
fmt 一个格式字符串
c/color 设置颜色
w 设置线宽

fmt是一种格式字符串,由颜色、标记和线型三部分组成:

 fmt = '[color][market][line]'

常用颜色符号

字符 描述 字符 描述 字符 描述 字符 描述
'b' 蓝色 'r' 红色 'm' 品红 'k' 黑色
'g' 绿色 'c' 青色 'y' 黄色 'w' 白色

常用标记符号

字符 描述 字符 描述 字符 描述 字符 描述
'.' '4' 右箭头 'H' 六边形2 '_' 标记线
',' 像素 's' 正方形 '+' 加号 'v' 下三角
'o' 圆圈 'p' 五边形 'x' X号 '^' 上三角
'1' 下箭头 'P' 加号 'D' 菱形 '<' 左三角
'2' 上箭头 '*' 星号 'd' 小菱形 '>' 右三角
'3' 左箭头 'h' 六边形1 '|' 垂直线

常用线型符号

字符 描述 字符 描述
'-' 实线 '-.' 点画线
'--' 长虚线 ':' 短虚线
 # 红色长虚线,数据使用星号标记:
 plt.plot(x,y,"m--*")
 ​
 # 黑色点画线,数据使用五边形标记:
 plt.plot(x,y,"k-.D")
 ​
 # 蓝色短虚线,无数据标记
 plt.plot(x,y,"b:")      # 颜色,线型和标记都是可选项

3、添加注释

使用matplotlib.pyplot.annotate()函数可实现添加注释:

 matplotlib.pyplot.annotate(text, xy, *args,**kwargs)

annotate()函数常用参数:

参数 描述
text 注释的文本,字符串型
xy 要注释的点,元组型,(x轴,y轴)
xytext 注释文本所在的位置,元组型,(x轴,y 轴)
arrowprops 设置在xy和xytext之间绘制箭头的样式,可选,字典型,可设置以下特征:width:箭头宽度。headwidth:箭头底部宽度。headlength:箭头长度。facecolor:填充颜色。edgecolor:边框颜色。
 # 使用箭头标注最小值所在位置:
 index = np.argmin(y)                # 获取y中最小值所对应的索引
 plt.annotate(text='最小值',                    # 注释的文本
              xy=(x[index], y[index]),
              xytext=(x[index], y[index] + 50),
              color='red',                       # 文字颜色
              arrowprops=dict(facecolor='g',     # 填充颜色
                              headlength=10,     # 箭头长度
                              headwidth=10,      # 箭头底部宽度
                              width=2,           # 箭头宽度
                              edgecolor='g',     # 边框颜色
                              )
              )

如果只是设置注释文本,可以使用matplotlib.pylot.text()函数实现:

 matplotlib.pylot.text(x, y, s, fontdict=None, **kwargs)

text()函数的常用参数:

参数 描述
x,y 放置文本的位置
s 文本内容
color 文本颜色
fontdict 设置文字属性,字典型。设置的属性主要有以下几种:fontsize:文字大小。fontstyle:文字样式,可设置为'normal','italic','oblique'。fontfamily:字体,可设为字体名称、'serif','sans-serif','cursive','fantasy','monospace'。alpha透明度,0~1的小数。rotation:文字的旋转角度,可设为数值、'vertical','horizontal'
 plt.text(12,350,"这是通过text设置的文字",
          color='red',
          fontdict={
              "fontsize":15,             # 文字大小
              "fontfamily":"sans-serif", # 字体
              "alpha":0.5                # 透明度
              "rotation":15              # 倾斜15度
          })

二、条形图

1、条形图

Matplotlib实现数据可视化,Python数据分析与可视化,python,开发语言,matplotlib

import numpy as np
import matplotlib.pyplot as plt
# 设置中文格式
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文格式
plt.rcParams['axes.unicode_minus'] = False
# 1、读取数据
data = np.loadtxt('../数据集/aqi_new.csv',delimiter=',',dtype=float,skiprows=1)
x = np.arange(1,21) 		# 日期1-22
y = data[:20,3] 			# PM2.5
# 2、添加内容
plt.title("2017年1月份(前20天)AQI走势图")	   # 设置标题
plt.xlabel("日期")							# 设置X轴名称
plt.ylabel("PM2.5的值")						# 设置Y轴名称
# 3、绘制图形
x_label = [str(int(i)) for i in x]  # 设置x轴刻度标签
plt.bar(x,y,						# X,Y轴坐标值
        facecolor="g",				# 条形框的填充色
        edgecolor="b",				# 条形框的边框色
        align="center",				# 条形框与X轴刻度的对齐方式
        tick_label=x_label,			# 显示在X轴刻度上的文字
        alpha=0.6					# 透明度
        )
# 4、显示图形
plt.show()

matplotlib.pyplot.bar()函数可以实现条形图的绘制:

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center',data=None, **kwargs)

bar()函数的常用参数:

参数 描述
x,height X轴和Y轴对应的数据
width 条形框的宽度,默认值为0.8
align 设置条形框与刻度线的对齐方式,默认为'center'。'center':条形图中央与刻度线对齐。'edge':条形图左边缘与刻度线对齐
facecolor 填充颜色
edgecolor 边框颜色
tick_label 设置与X轴刻度对应的文字,默认使用数字标签

2、堆叠条形图

Matplotlib实现数据可视化,Python数据分析与可视化,python,开发语言,matplotlib

import numpy as np
import matplotlib.pyplot as plt
# 设置中文格式
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文格式
plt.rcParams['axes.unicode_minus'] = False
# 1、读取数据
data = np.loadtxt('../数据集/aqi_new.csv',delimiter=',',dtype=float,skiprows=1)
x = np.arange(1,21) # 日期1-22
pm25_1 = data[:20,3]	# 1月份PM2.5
pm25_2 = data[32:52,3]	# 2月份PM2.5
# 2、添加内容
plt.title("2017年1月份和2月份前20天PM2.5比较")	# 设置标题
plt.xlabel("日期")							 # 设置X轴名称
plt.ylabel("PM2.5的值")						 # 设置Y轴名称
x_label = [str(int(i)) for i in x]  		  # 设置x轴刻度标签
plt.xticks(x,x_label,rotation=45)			  # 设置X轴的位置、刻度线和倾斜度
# 3、绘制图形
plt.bar(x,pm25_1,color='r',alpha=0.6)
plt.bar(x,pm25_2,color='g',alpha=0.6)
plt.legend(['1月份','2月份'])
# 4、展示图形
plt.show()

需要注意的是,plt.legend()一定要在绘制图形代码的后面,否则无法显示

3、并排条形图

Matplotlib实现数据可视化,Python数据分析与可视化,python,开发语言,matplotlib

import numpy as np
import matplotlib.pyplot as plt
# 设置中文格式
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文格式
plt.rcParams['axes.unicode_minus'] = False
# 1、读取数据
data = np.loadtxt('../数据集/aqi_new.csv',delimiter=',',dtype=float,skiprows=1)
bw = 0.3 # 设置条形框的宽度
x=np.arange(1,21)  # 日期1-20
x2=x+bw # 设置PM10的条形图的位置
pm25 = data[:20,3]      # 1月份PM2.5
pm10 = data[:20,4]      # 1月份PM10
# 2、添加内容
plt.title("2017年1月份前20天PM2.5和PM10比较")    # 设置标题
plt.xlabel("日期")                             # 设置X轴名称
plt.ylabel("PM2.5或PM10的值")                  # 设置Y轴名称
x_label = [str(int(i)) for i in x]            # 设置x轴刻度标签
plt.xticks(x+bw/2,x_label,rotation=45)         # 设置x轴刻度和刻度标签
# 3、绘制图形
plt.bar(x,pm25,color='r',width=bw)
plt.bar(x2,pm10,color='g',width=bw)
plt.legend(['PM2.5','PM10'])
# 4、展示图形
plt.show()

三、散点图

scatter()函数实现散点图:

scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None,vmin=None, vmax=None, alpha=None, linewidths=None, *,edgecolors=None, plotnonfinite=False, data=None, **kwargs)

scatter()函数的常用参数:

参数 描述
x,y X轴和Y轴对应的数据
s 指定点的大小
c 设置颜色
market 绘制的点的形状
alpha 点的透明度,取值为0-1的小数

Matplotlib实现数据可视化,Python数据分析与可视化,python,开发语言,matplotlib

import matplotlib.pyplot as plt
import numpy as np
# 设置中文格式
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文格式
plt.rcParams['axes.unicode_minus'] = False
# 准备数据
data = np.loadtxt('../数据集/aqi_new.csv', delimiter=',', skiprows=1)
# 1、准备数据
aqi = data[:366,-1]
pm25 = data[:366,3]
pm10 = data[:366,4]
# 2。添加内容
plt.title("2017年PM2.5、PM10与AQI关系散点图")
plt.xlabel("各指标值")
plt.ylabel("AQI的值")
# 3、绘制图形
plt.scatter(pm25,aqi,c='r',marker='*')
plt.scatter(pm10,aqi,c='g',marker='o')
plt.legend(['PM2.5','PM10'])
# 4、显示图形
plt.show()

四、子图

子图是将画布切割为多个网格区域,每个区域独立展示图形的格式。子图可以同时展示多个图形,并能清晰、直观地比较图形之间的差异。

Matplotlib实现数据可视化,Python数据分析与可视化,python,开发语言,matplotlib

import matplotlib.pyplot as plt
import numpy as np
# 设置中文格式
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文格式
plt.rcParams['axes.unicode_minus'] = False
# 1、准备数据
data = np.loadtxt('../数据集/aqi_new.csv', delimiter=',', skiprows=1)
aqi = data[:200, -1]
pm25 = data[:200, 3]
pm10 = data[:200, 4]
SO2 = data[:200, 5]
NO2 = data[:200, 6]
CO = data[:200, 7]
O3 = data[:200, 8]
# 2、绘制子图
plt.figure(figsize=(12, 10))    # 创建图形,figsize用于设置图形宽和高,单位为英寸
# 子图1
plt.subplot(221)      # 子图位置在2*2网格中的第一格
plt.title("PM2.5、PM10与AQI关系散点图")
plt.scatter(pm25,aqi,c='r',marker='*')
plt.scatter(pm10,aqi,c='g',marker='o')
plt.legend(['PM2.5','PM10'])
# 子图2
plt.subplot(222)
plt.title("SO2、NO2与AQI关系散点图")
plt.scatter(SO2,aqi,c='r',marker='*')
plt.scatter(NO2,aqi,c='g',marker='o')
plt.legend(['SO2','NO2'])
# 子图3
plt.subplot(2,2,3)
plt.title("CO与AQI关系散点图")
plt.scatter(CO,aqi,c='r',marker='*')
# 子图4
plt.subplot(2,2,4)
plt.title("O3与AQI关系散点图")
plt.scatter(O3,aqi,c='r',marker='*')
plt.show()

五、饼图

使用matplotlib.pyplot.pie()函数实现饼图的绘制:

matplotlib.pyplot.pie(
    x, explode=None, labels=None, colors=None, autopct=None,
    pctdistance=0.6, shadow=False, labeldistance=1.1,
    startangle=0, radius=1, counterclock=True, wedgeprops=None,
    textprops=None, center=(0, 0), frame=False,
    rotatelabels=False, *, normalize=True, hatch=None, data=None)

pie()函数的常用参数

参数 描述
x 绘制“饼”的数据,array型
explode 脱离圆心的幅度,取值范围0-1,1表示完全脱离
labels 指定每一项的名称,array型
colors 指定每一项的颜色,string型或array型,默认为None
autopct 数值的显示方式,string型,默认为None
shadow 是否显示阴影效果,默认为False
startangle 逆时针的旋转角度,float型,默认为0
radius 指定饼图的半径,float型,默认值为1

 Matplotlib实现数据可视化,Python数据分析与可视化,python,开发语言,matplotlib文章来源地址https://www.toymoban.com/news/detail-854332.html

import matplotlib.pyplot as plt
import numpy as np
 # 设置中文格式
plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False
# 准备数据
data = np.loadtxt('../数据集/aqi_new.csv', delimiter=',', skiprows=1)
aqi = data[:366,-1]
l1 = len(aqi[aqi<=50])  # 优
l2 = len(aqi[np.logical_and(aqi>50,aqi<=100)])  # 良
l3 = len(aqi[np.logical_and(aqi>100,aqi<=150)])  # 轻度污染
l4 = len(aqi[np.logical_and(aqi>150,aqi<=200)])  # 中度污染
l5 = len(aqi[np.logical_and(aqi>200,aqi<=300)])  # 重度污染
l6 = len(aqi[aqi>300])  # 严重污染
# 绘制图形
plt.title('2017年空气质量占比图')
plt.pie(
    x=[l1,l2,l3,l4,l5,l6],
    explode=[0,0,0,0,0,0.1],
    labels=['优','良','轻度污染','中度污染','重度污染','严重污染'],
    colors=['b','g','r','c','m','y'],
    autopct="%1.1f%%",
    shadow=True
)
plt.show()

到了这里,关于Matplotlib实现数据可视化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据可视化项目—基于Python豆瓣电影数据可视化分析系统的设计与实现

    本项目旨在通过对豆瓣电影数据进行综合分析与可视化展示,构建一个基于Python的大数据可视化系统。通过数据爬取收集、清洗、分析豆瓣电影数据,我们提供了一个全面的电影信息平台,为用户提供深入了解电影产业趋势、影片评价与演员表现的工具。项目的关键步骤包括

    2024年02月04日
    浏览(52)
  • [数据分析与可视化] 基于matplotlib-scalebar库绘制比例尺

    matplotlib-scalebar是一个Python库,用于在matplotlib图形中添加比例尺。它允许用户指定比例尺的大小、位置、字体和颜色,以及比例尺的单位。该库支持不同的比例尺单位,例如米、英尺、英寸等。matplotlib-scalebar安装命令如下: pip install matplotlib-scalebar 比例尺是一种用于描述图上

    2024年02月11日
    浏览(49)
  • 基于Python的豆瓣电影数据分析可视化系统的设计与实现-可视化分析大屏

    收藏关注不迷路 本文拟采用Python技术和Django 搭建系统框架,后台使用MySQL数据库进行信息管理,设计开发基于python的豆瓣电影数据分析可视化系统。通过调研和分析,系统拥有管理员和用户两个角色,主要具备个人中心、电影管理、用户管理、系统管理等功能模块。将纸质管

    2024年02月03日
    浏览(64)
  • 基于python的matplotlib、numpy库实现的图形绘制(数据可视化)

    1.题目要求 编写程序,绘制正弦曲线和余弦曲线。 提示:利用numpy的linspace()、sin()或cos()函数生成样本数据、正弦或余弦值。 2.函数讲解及代码  3.运行图样 4.扩展 1.题目要求 已知实验中学举行了高二期中模拟考试,考试后分别计算了全体男生、女生各科的平均成绩,统计结

    2024年02月08日
    浏览(59)
  • 简单的用Python抓取动态网页数据,实现可视化数据分析

    一眨眼明天就周末了,一周过的真快! 今天咱们用Python来实现一下动态网页数据的抓取 最近不是有消息说世界首富马上要变成中国人了吗,这要真成了,可就是历史上首位中国世界首富了! 那我们就以富豪排行榜为例,爬取一下2023年国内富豪五百强,最后实现一下可视化分

    2024年02月05日
    浏览(50)
  • 【数据分析】中介效应的简介、模型、python代码实现以及数据可视化

    当谈到因果关系时,中介效应是一种非常重要的概念。中介效应发生在一个变量(中介变量)部分地中介了另外两个变量之间的关系。 中介效应发生在以下情况下: 一个变量(中介变量)部分地中介了另外两个变量之间的关系。假设自变量X对因变量Y产生了影响,而这种关系

    2024年02月06日
    浏览(40)
  • 【7月最新实现】使用Python获取全网招聘数据,实现可视化分析

    哈喽兄弟们,今天来实现采集一下最新的qcwu招聘数据。 因为网站嘛,大家都爬来爬去的,人家就会经常更新,所以代码对应的也要经常重新去写。 对于会的人来说,当然无所谓,任他更新也拦不住,但是对于不会的小伙伴来说,网站一更新,当场自闭。 所以这期是出给不会

    2024年02月12日
    浏览(36)
  • python电影数据可视化分析系统的设计与实现【附源码】

    (一)开题报告,就是确定设计(论文)选题之后,学生在调查研究的基础上撰写的研究计划,主要说明设计(论文)研究目的和意义、研究的条件以及如何开展研究等问题,也可以说是对设计(论文)的论证和设计。开题报告是提高设计(论文)质量和水平的重要环节。 (二)开题报告主要

    2024年01月17日
    浏览(39)
  • 【Python】实现爬虫(完整版),爬取天气数据并进行可视化分析

    ✌️✌️✌️大家好呀,你们的作业侠又轰轰轰的出现了,这次给大家带来的是python爬虫,实现的是爬取某城市的天气信息并使用matplotlib进行图形化分析✌️✌️✌️ 要源码可私聊我。 大家的关注就是我作业侠源源不断的动力,大家喜欢的话,期待三连呀😊😊😊 往期源码

    2024年02月05日
    浏览(46)
  • 基于Python网络招聘数据可视化分析系统的设计与实现

    Design and Implementation of Python-based Network Recruitment Data Visualization Analysis System 完整下载链接:基于Python网络招聘数据可视化分析系统的设计与实现 摘要:本文设计并实现了一个基于Python的网络招聘数据可视化分析系统。随着互联网的快速发展,网络招聘已成为求职者和招聘方之间

    2024年04月17日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包