作者:雷蕾
数据可视化指的是通过可视化表示来探索数据,它与数据分析紧密相关。
数据分析指的是使用代码来探索数据集的规律和关联
本文主要讲解如何使用Pyhon最流行的工具之一Matplotlib来绘制折线图:
(一)安装Matplotlib
要使用Matplotlib来生成图表,为此需要使用pip包来对Matplotlib进行安装,执行命令如下:

为避免网络问题而导致下载并安装错误,可执行如下命令:

除此之外,小编在使用Matplotlib时出现错误,问题就在于numpy的版本,因此需要卸载原先的numpy1.19.4版本,重新安装numpy1.19.3版本,具体操作可执行如下命令:
卸载:

重装:

(二)绘制简单折线图
(1)先试着使用Matplotlib绘制一个最简单的折线图,我们使用平方数系列[1,4,9,16,25]来绘制这个图表:

import matplotlib.pyplot as plt
squares=[1,4,9,16,25]
fig,ax=plt.subplots()
ax.plot(squares)
plt.show()

在示例中,首先是导入模块pyplot ,并指定别名为plt,这是为了之后写代码的简洁,后面不需要反复输入pyplot,之后创建了一个名为squares的列表,用于存储制作图表的数据;
代码行fig,ax=plt.subplots()是调用函数subplots(),这个函数可在一张图片中绘制一个或多个图表,变量fig表示整张图片,变量ax表示图片中的各个图表,大多数情况下都需要使用它;
代码行ax.plot(squares)是调用方法plot(),它尝试根据给定的数据以有意义的方式绘制图表;
代码行plt.show()是打开Matplotlib查看器并显示绘制的图表。
运行代码结果展示:

(2)修改标签文字和线条粗细
在使用Matplotlib绘制图表时,可改变标签文字、线条等的大小来改善图表的可读性:

#修改标签文字和线条粗细
import matplotlib.pyplot as plt
squares=[1,4,9,16,25]
fig,ax=plt.subplots()
#绘制线条粗细
ax.plot(squares,linewidth=3)
#设置图表标题并给坐标轴加上标签
ax.set_title("平方数",fontsize=24)
ax.set_xlabel("值",fontsize=14)
ax.set_ylabel("值的平方",fontsize=14)
#设置刻度标记的大小
ax.tick_params(axis='both',labelsize=14)
#显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#解决负号“-”显示为方块的问题
plt.rcParams['axes.unicode_minus']=False
plt.show()

在示例中,添加绘制了线条粗细、刻度大小以及图表标题以及x轴、y轴的名称;
参数linewidth决定了plot()绘制的图表的线条粗细;
方法**set_title()是给图表指定标题;
方法
set_xlabel()和方法set_ylabel()**分别是为x轴、y轴设置坐标轴标题;
方法tick_params()是设置刻度的样式,其中方法中的实参axis='both’将影响x轴和y轴上的刻度,参数labelsize=14主要是将刻度标记的字号设置为14,而参数fontsize是指定图表中各种文字的大小。
运行代码结果展示:

值得注意的是,为了中文标签能够成功绘制,我们需要添加代码行:

#显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#解决负号“-”显示为方块的问题
plt.rcParams['axes.unicode_minus']=False

(3)校正图形
通过查看上述示例的运行结果所得图片,我们可发现绘制出的图片存在明显的错误:折线图的x坐标轴的点4的平方值为25,这是不可能的!因此我们需要校正这个问题:

#校正图片
#修改标签文字和线条粗细
import matplotlib.pyplot as plt
input_values=[1,2,3,4,5]
squares=[1,4,9,16,25]
plt.style.use('seaborn')
fig,ax=plt.subplots()
#绘制线条粗细
ax.plot(input_values,squares,linewidth=3)
#设置图表标题并给坐标轴加上标签
ax.set_title("平方数",fontsize=24)
ax.set_xlabel("值",fontsize=14)
ax.set_ylabel("值的平方",fontsize=14)
#设置刻度标记的大小
ax.tick_params(axis='both',labelsize=14)
#显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#解决负号“-”显示为方块的问题
plt.rcParams['axes.unicode_minus']=False
plt.show()

通过向plot()提供输入值和输出值,plot()不需要对输出值的生成方式进行假设,因此最终形成的图形是正确的:

input_values=[1,2,3,4,5]
squares=[1,4,9,16,25]ax.plot(input_values,squares,linewidth=3)

在示例中我们还添加了一行代码:plt.style.use(‘seaborn’),通过添加此代码行可使用Matplotlib提供了很多已经定义好的样式,比如背景色、网格线、线条粗细、字体、字号等。
运行代码结果展示:

最终我们可以看到图形已经得到校正,5的平方值是25!
(4)自动计算得数据
当要绘制的点尤其多,我们不必手工计算包含坐标点的列表,可用Python循环来完成:

import matplotlib.pyplot as plt
x_values=range(1,1001)
y_values=[x**2 for x in x_values]
plt.style.use('seaborn')
fig,ax=plt.subplots()
ax.scatter(x_values,y_values,s=10)
#设置图表标题并给坐标轴加上标签
ax.set_title("平方数",fontsize=24)
ax.set_xlabel("值",fontsize=14)
ax.set_ylabel("值的平方",fontsize=14)
#设置刻度标记的大小
ax.tick_params(axis='both',which='major',labelsize=14)
#设置每个坐标轴的取值范围
ax.axis([0,1100,0,1100000])
#显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#解决负号“-”显示为方块的问题
plt.rcParams['axes.unicode_minus']=False
plt.show()

在示例中,创建了一个包含x值的列表,其中包含数1~1000,接下来生成y值的列表解析,它遍历x值(for x in x_values),计算其平方值(x**2),并将结果存储到列表y_values中;
该代码行ax.scatter(x_values,y_values,s=10)表示将输入列表和输出列表传递给scatter(),因为涉及数多,我们将s的值(尺寸)变小;
该代码行ax.axis([0,1100,0,1100000])还使用方法axis()指定了每个坐标轴的取值范围:方法axis()要求提供4个值:x坐标轴和y坐标轴的最小值和最大值。
运行代码结果展示:

(5)颜色映射
使用颜色映射是一系列颜色,从起始颜色到结束颜色,模块pyplot内置了一组颜色映射,要使用这些颜色映射,需要告诉pyplot该如何设置数据集中的每个点的颜色:

import matplotlib.pyplot as plt
x_values=range(1,1001)
y_values=[x**2 for x in x_values]
plt.style.use('seaborn')
fig,ax=plt.subplots()
ax.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=10)
#设置图表标题并给坐标轴加上标签
ax.set_title("平方数",fontsize=24)
ax.set_xlabel("值",fontsize=14)
ax.set_ylabel("值的平方",fontsize=14)
#设置刻度标记的大小
ax.tick_params(axis='both',which='major',labelsize=14)
#设置每个坐标轴的取值范围
ax.axis([0,1100,0,1100000])
#显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
#解决负号“-”显示为方块的问题
plt.rcParams['axes.unicode_minus']=False
plt.show()

在示例中,代码行:

ax.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=10)

将参数c设置成一个y列表,并使用参数cmap告诉pyplot使用哪个颜色映射,示例中使用了Blue(蓝色)。
运行代码结果展示:


通过查看所得结果的展示,可知在示例中将y值较小的点显示为浅蓝色,将y值较大的点显示为深蓝色。
我们还可以让程序自动将图表保存到文件中,可将调用的代码plt.show()改为:

#自动保存图表
plt.savefig('squares_plot.png',bbox_inchese='tight')

该行代码中,'squares_plot.png’指定要以什么文件名保存图表;
bbox_inchese='tight’指定将图表多余的空白区域裁剪掉,当不需要裁剪掉图表空白区域时可将此代码删掉。

数据可视化_用Matplotlib绘制折线图相关推荐

  1. label mpchart 饼图_运用matplotlib绘制折线图、散点图、饼图、柱形图的定义代码以及案例详解...

    从导入数据开始 这里我们有一个现成的数据表包,现在我们所处环境是pycharm,安装环境是annaconda3环境,我们将通过这个数据表包来进行数据分析,运用matplotlib绘制折线图.散点图.饼 ...

  2. Python dataframe绘制饼图_运用matplotlib绘制折线图、散点图、饼图、柱形图的定义代码以及案例详解...

    从导入数据开始 这里我们有一个现成的数据表包,现在我们所处环境是pycharm,安装环境是annaconda3环境,我们将通过这个数据表包来进行数据分析,运用matplotlib绘制折线图.散点图.饼 ...

  3. python matplotlib绘制折线图

    前言 众所周知,matplotlib 是一款功能强大开源的数据可视化模块,凭借着强大的扩展性构建出更高级别的绘图工具接口如seaborn.ggplot.我们来看看往期学习章节内容概述吧~ 接下来,我们 ...

  4. python matplotlib画折线图_python使用matplotlib绘制折线图教程

    matplotlib简介 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序 ...

  5. python画曲线图例-python使用matplotlib绘制折线图教程

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...

  6. 如何使用python画折线图-python使用matplotlib绘制折线图教程

    matplotlib简介 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序 ...

  7. 第一章 使用 matplotlib 绘制折线图

    系列文章目录 第一章 使用 matplotlib 绘制折线图 第二章 使用 matplotlib 绘制条形图 第三章 使用 matplotlib 绘制直方图 第四章 使用 matplotlib 绘制散 ...

  8. python绘制折线图保存_Python利用matplotlib绘制折线图的新手教程

    前言 matplotlib是Python中的一个第三方库.主要用于开发2D图表,以渐进式.交互式的方式实现数据可视化,可以更直观的呈现数据,使数据更具说服力. 一.安装matplotlib pip i ...

  9. matplotlib绘制折线图

    matplotlib绘制折线图 这阳春三月的邵大白在家过的什么日子,幽栖地僻经过少,花径不曾缘客扫~ 开个逗b号纪念下这段闭关的时光=^=万一他以后就变成一个数据分析的大v号了来~ 好了邵大白课堂开课 ...

最新文章

  1. SQL UPDATE with INNER JOIN
  2. mysql fulsh_MYSQL教程:MySQL用户帐号管理_MySQL
  3. HCNA配置浮动静态路由
  4. 2008社工新书《黑客社会工程学攻击》
  5. find命令进阶用法(一)
  6. 数据仓库整合各系统码表和参数表
  7. 弹簧优化设计MATLAB,基于MATLAB的圆柱螺旋弹簧的优化设计
  8. 感冒喝咖啡_早上喝咖啡时学习EmotionJS-就是这么简单。
  9. 微信朋友圈两大神秘江湖帮派:养生党、鸡汤党
  10. Codeforces Round #521 (Div. 3) B - Disturbed People (贪心)
  11. Android Studio Gradle实践之多渠道自动化打包+版本号管理
  12. 16. FizzBuzz
  13. 实时折线图php mysql 源码_超级漂亮网址导航源码,自助链源码(PHP+MYSQL完整版)...
  14. 骁龙778G+和骁龙778G区别
  15. win10卸载补丁发生错误,没有成功卸载全部更新
  16. pdf转换成word怎么转换?这个方法一学就会!
  17. [B2R]Raven: 2靶机
  18. NVIDIA Jetson之TF卡系统镜像备份与恢复
  19. 监测环境温度遇坑记之unsigned char char
  20. C++基础教学(二)基本数据类型计算

热门文章

  1. 计算机专业的书普遍都这么贵,你们都是怎么获取资源的
  2. @Repeatable注解学习
  3. 奖励系统设计(规则分析+技术实现)
  4. 三大编码法宝:预测,变换量化,熵编码
  5. Flink进阶系列--FLIP-27新的Source架构
  6. Android移动应用开发课程设计(含源码)
  7. iam是什么意思中文_IM是什么意思
  8. 见证2008,盘点2008
  9. iPhone图片格式转换之heic转jpg
  10. quarts集群 运维_定时任务之Quartz和Elastic-Job