1.Matplotlib介绍

什么是Matplotlib

Matplotlib是一个Python的绘图库,它可与 NumPy 一起使用,可以代替M

Matplotlib安装

由于Matplotlib是第三方库,所以我们需要安装它才可以使用。注意,Matplotlib3.0要求python3版本才可安装使用。

安装命令:pip install matplotlib

安装可参考官网:https://matplotlib.org/users/installing.html

2.使用matplotlib绘图

使用plt.figure生成一张新的画布

注意

  • 在IPython中,执行该代码一个空白的绘图窗口就会出现,但在Jupyter中则没有任何显示

但是可以通过fig.add_subplot创建一个或多个子图。

如:带有四个子图的空白Matplotlib图片

除此之外,Matplotlib包含一个便捷方法plt.subplots创建一个新的图片,然后返回包含了已生成子图对象的Numpy数组。

  • plt.subplots(nrows, ncols, sharex, sharey)

    • nrows子图的行数
    • ncols子图的列数
    • sharex 所有子图使用相同的x轴刻度
    • sharey 所有子图使用相同的y轴刻度

那么实际上,当我们不需要使用子图时,可以通过plt对象直接绘制图形。

3.使用matplotlib绘制折线图

折线图可以通过plot()函数来绘制

  • plt.plot(x, y) # 使用默认的线样式及颜色绘制x,y构建的图形

并且,plt.plot()函数除了传入制图数据,还可以设置线的颜色等。

  • color 设置线的颜色
  • linestyle 设置线的样式
  • marker 标记样式

plt.plot()参数使用具体可参考:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.plot.html#matplotlib.axes.Axes.plot

图形组成

实际上,图形的组成除了x,y轴。还有很多组件。如下图

常用的plt方法

plt.figure(figsize=None,dpi=None) #生成新的图片,figsize:图片大小,dpi:透明度

plt.savefig(fname) #保存图片

plt.xticks(ticks=None) #设置x轴刻度的值

plt.yticks(ticks=None) #设置y轴刻度的值

plt.xlabel(xlabel) #设置x轴标签

plt.ylabel(ylabel) #设置y轴标签

plt.title() #设置图标题

plt.grid() #根据x轴和y轴的数值展示轴网格

中文显示问题

当我们需要设置轴标签,标题等,通常会使用到中文。但是,matplotlib默认不显示中文,如图:

解决方法
方法一

import matplotlib
font = { 'family':'SimHei', 'weight':'bold', 'size':12
}
matplotlib.rc("font", **font)

方法二

from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:windowsfontssimsun.ttc", size=14)
x = [1,2,3,4]
y = [3,2,1,3]plt.plot(x,y)
plt.xlabel("x轴标签",fontproperties=font)
plt.show()

练习

如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况

练习

假设大家在30岁的时候,根据自己的实际情况,统计出来了你和同桌从11岁到30岁每年交的男女朋友的数量如列表a和b,请绘制出该数据的折线图,以便分析自己和同桌每年交男女朋友的数量走势

a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]

b = [1,0,3,1,2,2,2,3,1,1,1,1,1,2,1,1,2,3,2,2]

要求:

  • y轴表示个数
  • x轴表示岁数,比如11岁,12岁

没数据时y轴不显示_Matplotlib数据可视化相关推荐

  1. matplotlib 设置标注方向_matplotlib y轴标注显示不全以及subplot调整的问题

    matplotlib y轴标注显示不全以及subplot调整的问题 问题: 我想在y轴显示的标注太长,想把它变成两行显示,发现生成的图形只显示的第二行的字,把第一行的字挤出去了 想要的是显示两行这样子 ...

  2. echarts折线图鼠标悬浮竖线_echarts y轴,显示数据,但不显示竖线

    在yAxis中插入: axisLine: {show:false}, axisTick: {show:false}, yAxis : [ { show:true, axisLine: {show:fa ...

  3. ECharts 多个y轴时使用series.yAxisIndex给数据指定y轴

    1 使用详解 yAxisIndex 说明:使用的 y 轴 的 index,在单个图表实例中存在多个 y轴的时候有用. 默认值:0. 参数类型:number. 2 原始效果图 3 实现代码(给数据指定y ...

  4. 关于FusionChartsFree y轴不显示中文 的解决办法

    关于FusionChartsFree y轴不显示中文 的解决办法 ---首先说明,小辈这是第一次写blog,下面的文章可能写的不是很好,希望前辈们多多指教! 在网上搜了很多关于"Fusion ...

  5. echarts柱状图x,y轴对应多条数据(可自定义)

    echarts,x,y轴对应多条数据,y轴取反就行 先说需求,我做这个图表是多个物流商对应不同月份的数值 配置项option option = {tooltip: {trigger: 'axis',a ...

  6. R语言ggplot2包和lattice包可视化改变x轴和y轴的显示位置实战

    R语言ggplot2包和lattice包可视化改变.自定义x轴和y轴的显示位置实战 目录 R语言ggplot2包和lattice包可视化改变.自定义x轴和y轴的显示位置实战

  7. mybatis向mysql数据库插入数据时,中文乱码显示为?解决方法

    mybatis向mysql数据库插入数据时,中文乱码显示为?解决方法 1.先查看库.表.表字符字段的编码格式.MySQL默认的库和表的字符编码都是latin1,而我们一般需要使用 utf8 //先查看 ...

  8. echarts y轴只显示5个刻度_Echarts 双Y轴刻度不一致

    项目中使用了 百度Echarts 根据项目需要,要实现双Y轴展示柱状图 最终的样子是这样的 最终效果 实现过程中遇到的问题 一开始是这个样子的(因为没有设置max min,天真的以为只要有数据,就会系 ...

  9. EChart 标题 title 样式,x轴、y轴坐标显示,调整图表位置等

    示例里工作一般情况是够用了,更复杂的可以查询教程: title 官方解说:http://echarts.baidu.com/option.html#title 坐标相关: X轴:http://echa ...

最新文章

  1. C linux 深入学习 errorfunction的创建
  2. [CentOS7] 常用工具 之 差异备份工具 rdiff-backup
  3. 爱心志愿者义工俱乐部公告
  4. 英国电信宣布2030年前碳排放削减87%
  5. python 有限域函数库_深入比特币之有限域运算
  6. 抓包工具Charles使用教程
  7. LIO-SAM探秘第一章之论文解析
  8. HIT CSAPP 大作业
  9. react17.x+MDUI实现todo小案例,react动态添加与删除元素属性
  10. url的中文转码和解码
  11. code vs 集成tfs_Microsoft强大团队(源代码)管理工具--TFS2010 与vs结合
  12. 【第三方互联】2、创建腾讯QQ互联应用
  13. 基于linux 的 PCI PCIe 总线分析总结
  14. TXT文件导入mysql
  15. vincy:提升购买欲望的13种手段
  16. 测量网页元素的大小和间距的利器
  17. android 4.4 蓝牙开发总结(电视盒子)
  18. pandas读取Excel判断指定列是否有空值
  19. 太香了!推荐6个Python数据分析神器!!
  20. 2019年最新最全的医疗网站优化方案

热门文章

  1. 【BAT面试现场】如何判断一个数是否在40亿个整数中?
  2. 备案域名绑定服务器后 提示需要备案_小程序开发需要多少钱?
  3. jq ajax异步上传文件,jQuery插件ajaxFileUpload异步上传文件
  4. Linux7/Redhat7/Centos7 安装Oracle 12C_配置IP、系统参数_02
  5. 前后端分离,如何解决跨域(代理模式)、路由拦截(进入页面需要登录)以及请求拦截(登录TOKEN失效)等问题(初学者)
  6. 关于在nw里使用require('printer')和nw.require('printer')报错的问题
  7. 编写C语言代码,实现以下功能:输入平面上两个点P1(x1,y1)和P2(x2,y2)的坐标,以这两个点为左上角和右下角可以确定一个矩形,输出这个矩形的周长。要求平面上点的坐标和矩形都用结构体来表示。
  8. 服务器cpu虚拟插槽,服务器更换cpu插槽
  9. html边框大一点,CSS3 框大小(box-sizing)
  10. 设置线程当天十二点执行_这份JAVA多线程笔记真的是细节满满,几乎全是你工作能用到的干货...