echars显示折点数据_数据可视化的基础语法

数据可视化的基础语法

可视化主要是以图像来展示数据间的关系,

常见的图形种类有

  • 折线图,散点图,条形图,直方图,饼图
  • 此外在接下来课程中还会用到箱线图,热力图,蜘蛛图,表示二元变量分布和成对关系的视图。

今天我们要来了解折线图,散点图,条形图,直方图,饼图和其特点。认识Matplotlib的图像结构,并以Matplotlib绘制折线图为例来掌握设置辅助显示层;此外,用Matplotlob设置辅助显示层,内容还增添拓展部分,平时用到的不是很多,作为了解即可。

常见图像

折线图

  • 以折线的上升或下降来表示统计数量的增减变化的统计图特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)
bcbbbbc8d70798701957d22730229596.png

散点图(Scatter)

  • 用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
b2fc517e0684f3ae189a086732624c12.png

条形图

  • 排列在工作表的列或行中的数据可以绘制到柱状图中。特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)

直方图(Histogram)

  • 由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据范围,纵轴表示分布情况。特点:绘制连续性的数据展示一组或者多组数据的分布状况(统计)

饼图(pie)

  • 用于表示不同分类的占比情况,通过弧度大小来对比各种分类。特点:分类数据的占比情况(占比)
874ddb317b223d80c07b9d4a59185ab6.png

Matplotlib画图基础

6efc84d813b29b4af4fa43635ba57b06.png

Matplotlib,它是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。只需几行代码即可生成绘图,直方图,条形图,散点图等。

Matplotlib画图的简单实现


 # 导入模块 import matplotlib.pyplot as plt # 在jupyter中执行的时候显示图片 #matplotlib inline # 传入x和y, 通过plot画图 plt.plot([3, 1, 7], [4, 5, 6]) # 在执行程序的时候展示图形 plt.show()

传入x和y时,括号中的第一个列表是x轴上的值,第二个列表是y上的值。

运行结果:

cb6a3d9b3775df1a37f08a072423eff8.png

如何应用呢?

9a59a13dc3f862ec06fee2c2c64547e2.png

对Matplotlib图像结构的认识

3f05e762bc5e62c9e97d648ae702e968.png

在学习Matplotlib的过程中,大家一定会遇到这样那样的问题,

比如说,

  • 背景图怎么设置?
  • 坐标轴怎么设置?
  • 坐标轴上的刻度值怎么设置?因此对于Matplotlib的图像结构组成我们要有一定的了解。通常情况下,我们可以将一副Matplotlib图像分成三层结构:
  1. 第一层是底层的容器层主要包括Canvas(画板)底层、Figure(画布)用户操作第一层设置画布的大小和背景颜色、Axes(绘图区)独立的坐标系;
  2. 第二层:辅助显示层主要包括Axis(轴)、Spines(边框线)、Tick(坐标轴刻度)、Grid(网格线)、Legend(图例说明)、Title(标题)等,该层可通过set_axis_off()或set_frame_on(False)等方法设置不显示。该层的设置可使图像显示更加直观更加容易被用户理解,但又并不会对图像产生实质的影响。
  3. 第三层:图像层即通过plot、hist、contour、scatter等方法绘制的图像。

Matplotlib绘制折线图

折线图的绘制

1fb48cb0239a2d40cb3942698c9247b3.png

代码解析:

x轴数值的产生使用range函数,开始数字是1,结束时7,不包含8。

折线的颜色和形状设置

 from matplotlib import pyplot as plt x = range(1,8) # x轴的位置 y = [17, 17, 18, 15, 11, 11, 13] # 传入x和y, 通过plot画折线图 plt.plot(x, y, color='red',alpha=0.5,linestyle='--',linewidth=3) plt.show()  '''基础属性设置 color='red' : 折线的颜色 alpha=0.5 : 折线的透明度(0-1) linestyle='--' : 折线的样式 linewidth=3 : 折线的宽度 ''' '''线的样式 - 实线(solid) -- 短线(dashed) -. 短点相间线(dashdot) :虚点线(dotted) '''

运行结果:

5ee60ee56eceacb35e2e96b26977afbe.png

折点样式

7fef17245b2bfdcfe35a77aa5e811c34.png

折点形状选择:

 标记maker            描述  ‘o’                 圆圈   ‘.’                 点 ‘D’                 菱形   ‘s’                 正方形 ‘h’                 六边形1     ‘*’                 星号 ‘H’                 六边形2     ‘d’                 小菱形 ‘_’                 水平线 ‘v’                 一角朝下的三角形 ‘8’                 八边形 ‘’                 一角朝右的三角形 ‘,’                 像素   ‘^’                 一角朝上的三角形 ‘+’                 加号   ‘  ‘               竖线 ‘None’,’’,’ ‘       无   ‘x’                 X

设置图片的大小和保存

 from matplotlib import pyplot as plt import random x = range(2,20,2) # x轴的位置 y = [random.randint(15, 30) for i in x] # 设置图片的大小 ''' figsize:指定figure的宽和高,单位为英寸; dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张 ''' # 设置画布对象 plt.figure(figsize=(20,8),dpi=80) plt.plot(x,y) # 传入x和y, 通过plot画图 # 保存(注意:要放在show的上面,plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。) plt.savefig('./t1.png') #./表示放在当前python文件的目录 plt.show() # 图片的格式也可以保存为svg这种矢量图格式,这种矢量图放在网页中放大后不会有锯齿 # plt.savefig('./t1.svg')

x轴的数值,使用range(),step为2,不包括20;

y轴的数值是一个列表表达式,由随机数产生,import random之后,randint产生随机整数,范围是15-30。“for i in x”是一个循环,作用是表明y轴数值产生随机数的次数,次数由x轴上数值的个数决定。

运行结果:

9302e5417c57688cbb3c04b232878dc9.png

绘制x轴和y轴的刻度

c11ae329ec33f4996aeb0370d9e0ab9b.png

在设置Y轴标签时,标签数值的取值范围range(min(y),max(y)+1),这里min()和max()时是函数,分别取y中的最小和最大值,由于range函数不包集合右边的值,故加1。plt.yticks(range(min(y),max(y)+1),y_ticks_label)中,y_ticks_label表示y轴刻度产生的次数。

设置显示中文

matplotlib只显示英文,无法显示中文,需要修改matplotlib的默认字体。通过模块font_manager使用中文字体可以解决。

以表示两个小时内心脏每分钟跳动变化为例,x轴需要加上标题“时间”,y轴“次数”,图像标题“每分钟跳动次数”,如下图所示:

95072b3e355fa1fb41ef60bcc013b0d8.png

一图多线

271db17e4bec12355413c20e3e4571f6.png

拓展部分:一图多个坐标系

 # 方法add_subplot:给figure新增子图  # 这里引进的科学计算库Numpy,把它看作一个[列表]即可,目的是要使用log方法画log对数函数。 import numpy as np from matplotlib import pyplot as plt x = np.arange(1, 100) #与range()相同 #新建figure画布对象,三个坐标轴(子图)建立在同一个画布上 fig=plt.figure(figsize=(20,10),dpi=80)  #利用画布对象,在上面放置三个坐标系 #新建子图1 ax1=fig.add_subplot(2,2,1) ax1.plot(x, x) #新建子图2 ax2=fig.add_subplot(2,2,2) ax2.plot(x, x ** 2) #x的二次方,如果是x**3是x的三次方 ax2.grid(color='r', linestyle='--', linewidth=1,alpha=0.3) #新建子图3 ax3=fig.add_subplot(2,2,3) ax3.plot(x, np.log(x)) plt.show()

在这里解释一下add_subplot(2,2,1)里的参数的含义。在一个画布上放置三个图,需要排列位置。

首先将一张图,分成两列,再分成两行,总共划分出四个格子,子图1按照从左到右从上到下的顺序放在第一个格子里。

运行结果:

3fdbb7d8c7ad567b65864babd4d85bb6.png

拓展部分:设置坐标轴范围

18367ad07e52cc8333dacb1b7ece76c8.png
8a38b109db36626165577b5d0306dbdf.png

打卡格式

743428e2608f42a8712e56546108ef70.png

小作业

  • 1、说出你理解的五种常用图像的特点,你有没有地方需要用得到呢?。
  • 2、运用Matplotlib,自己编数据设计样式,绘制一幅自己的折线图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ajax 输入不为空,ajax POST响应为空

尝试通过单击按钮发布数据,但作为响应,PHP脚本中将其显示为空这是html这是jqueryvar action 1;$("input").on("click", sendData);function sendData() {if ( action 1 ) {$("#btn").css("background", "…

cad快捷键文件路径_办公格式转太难不会看这里!CAD、PDF、Word、Excel、TXT教你玩转...

办公格式转,你遇到最难解决的问题是哪些?办公格式转,最让你头疼的文件格式是哪些?办公格式转,你最想要学习转换格式有哪些?我:Word、Excel、PPT、TXT、CAD、PDF、JPG统统都想要进行解决&#xf…

80x86汇编—分支循环程序设计

文章目录 查表法: 实现16进制数转ASCII码显示计算AX的绝对值判断有无实根地址表形成多分支从100,99,...,2,1倒序累加输入一个字符,然后输出它的二进制数大小写转换大写转小写小写转大写 冒泡排序剔除空格 查表法: 实现16进制数转ASCII码显示 题目要求: …

jquery 获取键值对中最大值_jquery属性的操作

HTML示例代码:第一个标题家用电器分类家用电器价格11男:女:第一行第二行第三行第四行第二个标题第一段第二段属性:attr(n|k,v|p|f):设置或返回被选属性的值name:返回所有所选属性的值key,value:以键值对的方式设置所有所选属性的值properties…

python怎么一直循环_python 基础之while无限循环

用户登录程序 username "chenxi" passwed "testki" counter 0 while counter < 3: # 测试3次 user input("输入用户名&#xff1a;") passw input("输入密码&#xff1a;") if user username and passw passwed : print(&qu…

织梦服务器系统win10,WIN服务器爆破DEDECMS后台目录

利用脚本python&#xff1a;#!/usr/bin/env python/** author Mochazz* team 红日安全团队* env pyton3**/import requestsimport itertoolscharacters "abcdefghijklmnopqrstuvwxyz0123456789_!#"back_dir ""flag 0url "http://192.168.1.9/t…

人工智能技术对专利制度的挑战与应对

来源&#xff1a;上海市法学会内容摘要人工智能技术作为人类的一项发明创造&#xff0c;本身具备了一定的创造力。无论是专利法治实践还是理论研究均无法否认&#xff0c;在弱人工智能时代&#xff0c;人工智能技术兼具发明创造工具和发明创造方案的提供者的双重身份。由此导致…

java.lang.UnsupportedClassVersionError: Bad version number in .class file异常

java.lang.UnsupportedClassVersionError: Bad version number in .class file异常 部署工程时也出现过因为版本不同引起的问题&#xff0c;那时我们用的IDE的编译器是JDK5.0&#xff0c;而那台Linux装的是JDK6.0&#xff0c;部署后发现很多功能都出错&#xff0c;看来有些东西…

网络推广恶意点击js_做好网络推广,是做好网络营销的必要条件

互联网社会里网络无处不在&#xff0c;商机无处不在&#xff0c;企业通过网络营销&#xff0c;能有效的避免线下竞争激烈的市场&#xff0c;做好网络推广&#xff0c;是做好网络营销的必要条件。一个优秀的网络推广团队不但能实现提高企业的知名度的目的&#xff0c;还能帮助企…

css盒子模型_css的盒子模型是什么

CSS盒子模型就是在网页设计中经常用到的CSS技术所使用的一种思维模型。css盒子模型又称为框模型 (Box Model) &#xff0c;包含了元素内容(content)、内边距(padding)、边框(border)、外边距(margin)几个要素组成了盒子模型。图中最内部的框是元素的实际内容&#xff0c;也就是…

ajax实现重新绘图,如何画Flot AJAX更新图

在上一章我们提到了如何画实时更新图,而这一章就要教你们如何利用AJAX去后端抓数据回来做实时更新图.系统负载实时更新图(AJAX)我们直接拿上一章的范例来做修改,在这里只说明有修改到的部份,有任何不清楚的地方,你也可以随时回到上一章去查看.准备资料首先,因为我们画的是系统负…

6G应用场景有哪些?首份6G报告给你揭晓

来源&#xff1a; 5G产业圈导 读中国移动研究院无线与终端技术研究所所长丁海煜介绍称&#xff0c;按照移动通信产业“使用一代、建设一代、研发一代”的发展节奏&#xff0c;业界预期6G将于2030年左右实现商用。“创新、协调、绿色、开放、共享”应成为5G向6G演进的新发展理念…

linux python 图形界面开发_python在linux制作图形界面(snack)

snack是一个用于在linux制作图形界面&#xff08;GUI&#xff09;的模块&#xff0c;该模块由c编写&#xff0c;而且redhat的系统都自带这个模块。 1.获取模块 虽然redhat系统会自带这个模块&#xff0c;但是直接去import snack会提示找不到模块&#xff0c;一个原因是我们重装…

虚拟搭建局域网模拟器_巧用虚拟局域网,快速搭建私有云,一步就能搞定

前段时间公司一直在使用局域网来进行文件共享&#xff0c;用一台电脑把某个文件夹在局域网里共享出来&#xff0c;其他电脑远程访问&#xff0c;但是这样使用太麻烦&#xff0c;要是主电脑忘记开机&#xff0c;其它人就用不了。再就是&#xff0c;一旦离开公司之后&#xff0c;…

云服务器cvm只能弄网站么,云服务器cvm与建站主机区别

因此&#xff0c;云服务器cvm与建站主机的区别&#xff0c;其实也就是云服务器与虚拟主机之间的区别。安全可靠性云服务器cvm基于新型的虚拟主机现也位于云技术平台&#xff0c;安全稳定性较强。不过&#xff0c;由于CPU、带宽或IP等资源与其他空间共享&#xff0c;性能方面还是…

5个层级带你看清一颗芯片的内部结构

来源&#xff1a;北京物联网智能技术应用协会导 读在我们阐明半导体芯片之前&#xff0c;我们先应该了解两点。其一半导体是什么&#xff0c;其二芯片是什么。

python使用shell命令_python 调用shell命令的方法

在python程序中调用shell命令&#xff0c;是件很酷且常用的事情…… 1. os.system(command) 此函数会启动子进程&#xff0c;在子进程中执行command&#xff0c;并返回command命令执行完毕后的退出状态&#xff0c;如果command有执行内容&#xff0c;会在标准输出显示。这实际上…

ActiveRecord模式整理

DAO Data Access Object&#xff0c;数据访问对象 DAO是一个软件设计的指导原则&#xff0c;在核心J2EE模式中是这样介绍DAO模式的&#xff1a;为了建立一个健壮的J2EE应用&#xff0c;应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说&#xff0c;…

java中必检异常有哪些_Java面试题经典面试题220道(附答案)

Java基础&#xff1a;1.JDK 和 JRE 有什么区别&#xff1f;2. 和 equals 的区别是什么&#xff1f; 解读3. 两个对象的 hashCode() 相同&#xff0c; 那么 equals() 也一定为 true吗&#xff1f;4. final 在 Java 中有什么作用&#xff1f;5. Java 中的 Math. round(-1. 5) 等…

11项关键先进制造技术解读!

来源&#xff1a;中国指挥与控制学会图片&#xff1a;来源于网络上届美国总统奥巴马非常重视制造业。其发起成立的“先进制造业合作委员会”&#xff0c;Advanced Manufacturing Partnership&#xff0c;就未来制造业的发展做出了展望&#xff0c;重点规划11个技术领域&#xf…