教你学会通过python的matplotlib库绘图

一、前言

python的matplotlib库很强大可以绘制各种类型的图像。
首先要装一些基础的库,如numpy,matplotlib或是pandas。

二、基础命令

首先介绍绘图时常用的基础命令:

1.plt.plot(x,y)即为绘图命令。
①基础画图:

plt.plot(x, y)

②设置颜色:

color属性
如果没有特别要求的话可以不手动设置颜色,如果要在一张图上画不同的线时,会自动分配颜色。也可以使用ax.plot效果相同。

plt.plot(x, y, color = 'red')

③设置线型:

lineStyle属性
可以选择'-', ‘–', ‘-.', ‘:', ‘None', ' ', ‘', ‘solid', ‘dashed', ‘dashdot', 'dotted'这些类型的。

plt.plot(x, y, lineStyle = 'dashdot')

④设置标注类型:

marker属性
有不同的marker可以选择,比如'o','*',‘x'。

plt.plot(x, y ,marker='x')

⑤设置图例:

label属性。

plt.plot(x, y ,marker='o',label='语文成绩')
plt.plot(x, y ,marker='*',label='数学成绩')
plt.plot(x, y ,marker='x',label='英语成绩')

只是这样图例是不会显示的,还需要加上loc是位置设置,具体见后面讲解。

plt.legend(loc='upper left')

三、正常显示中文:

①windows系统:

plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

mac系统:
这里是这样设置的,也可以设置为其他中文字体。

plt.rcParams["font.family"] = 'Arial Unicode MS'

②正常显示符号:

plt.rcParams['axes.unicode_minus'] = False

四、设置图样或子图

①如果只画一张图的话可以,figsize设置的是x轴和y轴方向图片大小的比例。这里要设置好否则可能会出现图片显示不完全的情况,如果通过savefig命令保存的话,也是按照这个比例来保存的图片。

f = plt.figure(figsize=(8,6))

或是,虽然是通过subplots命令,可是不指定nrows和ncols默认只有一个子图。

f, ax = plt.subplots(figsize=(8,6))

ax表示的是当前坐标轴。

ax = plt.gca()

如果有多个子图的话:
nrows为行,ncols为列,figsize为图片的尺寸。

f, ax = plt.subplots(nrows=2,ncols=1,figsize=(8,6),facecolor='white')

或是

fig = plt.figure()
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)
ax1.plot(x,y)
ax2.plot(x,z)

或是

ax1 = plt.subplot(2,1,1)
ax2 = plt.subplot(2,1,2)
ax1.plot(x,y)
ax2.plot(x,z)

其他属性:第一个属性标记的是窗口的名称,dpi设置的分辨率。

f = plt.figure('成绩窗口',figsize=(8,6),facecolor='white',dpi=100)

②设置图片背景色:

f = plt.figure(figsize=(8,6),facecolor='blue')

如果要设置图片前景色,要用

ax.set(facecolor='white')

五、设置x轴或y轴相关属性:

①设置x轴的刻度:
需要指定标注的位置,标注的具体值,可以通过fontsize指定大小。

x = [0,2,4,6,8]
x_label = ['第一学期','第二学期','第三学期','第四学期','第五学期']
plt.xticks(x, x_label,fontsize=13)

这里的xticks支持latex,

x_label = [r'$e^x$',r'$x_1^2$',r'$\lambda$',r'$\frac{1}{2}$',r'$\pi$']

有时候可能标注的值很多,我们想把x轴的刻度竖着显示:
只需要在x_label中要换行的地方加上'\n‘换行符即可。

x = [0,2,4,6,8]
x_label = ['第\n一\n学\n期','第二\n学期','第\n三\n学\n期','第四\n学期','第五\n学期']
plt.xticks(x, x_label,fontsize=13)#这有一张图

②设置x轴的标签:
这两条命令是一样的作用。

plt.xlabel(u"学期")
ax.set_xlabel(u"学期")#设置x轴的标签值

xlabel同样支持latex

plt.xlabel(u"$x^2$")

③设置x轴的范围:
这两条命令也是一样的作用。
一般不需要人为指定范围,程序会根据输入的最大值和最小值自动确定一个范围。

plt.xlim(0,100)
ax.set_xlim(0,100)

设置y轴的相关属性和x轴的相关属性方法是一样的,只需要把x替换成y即可。

六、设置标题:

fontsize为大小,fontweight指定加粗。下面两条命令作用相同。

plt.title('小明第一至第四学期成绩变化折线图',fontsize=18,fontweight='bold')
ax.set_title('小明第一至第四学期成绩变化折线图',fontsize=18,fontweight='bold')

这里程序会自动将标题放在一个合适的位置,当然也难免出现title不是我们想要的位置的情况,这是可以通过指定x或是y属性,来设置title的位置。正常范围是[0,1]可以设置负零点几或是一点几,需要多尝试,如果设置超出图片范围会看不到title的。
比如这里我设置y=-0.1,可以看到title到下面去了。

plt.title('小明第一至第四学期成绩变化折线图',fontsize=18,fontweight='bold',y=-0.1)

七、设置图例:

法一:
在画图的时候做好标注。

plt.plot(x, y[0,:],marker='o',label='语文成绩')
plt.plot(x, y[1,:],marker='*',label='数学成绩')
plt.plot(x, y[2,:],marker='x',label='英语成绩')
plt.legend(loc='upper left')

法二:
不写在plot中,统一写在legend中。
可以指定对应曲线,这里的曲线定义后一定要加',',否则会报错。

a,=plt.plot(x, y[0,:],marker='o')
b,=plt.plot(x, y[1,:],marker='*')
c,=plt.plot(x, y[2,:],marker='x')
plt.legend((a,b,c),('语文成绩','数学成绩','英语成绩'),loc='upper left')

或是不指定对应曲线,

plt.legend(('语文成绩','数学成绩','英语成绩'),loc='upper left')

不指定对应曲线的方式不推荐,有时候并不想给每个曲线都加图例,不加图例的曲线可以不写label属性。而该方式会按plot的顺序,加图例,不会跳过不想加图例的曲线,除非是最后的曲线,不写就不会加。
legend的命令只能通过plt设置,如果有多个子图的话,

ax = plt.subplot(2,1,1)

这样对plt操作就可以对子图操作。

八、进行标注:

标注的话需要写循环,一个个标注,不能这样写plt.text(x,y,"%s"%str(y)),不会一次标注一堆。
fontsize是设置标注的字体。用ax是一样的。

for i in range(len(x)):
	plt.text(x[i],y[i],"%s"%str(y[i]), fontsize=12)
	#ax.text(x[i],y[i],"%s"%str(y[i]), fontsize=12)

经常出现legend把图片内容给挡住了的情况,这里也可以指定legend的位置。

可以通过bbox_to_anchor属性来调整legend的位置。

plt.legend(bbox_to_anchor=(1.05, 1), loc=2)

图例还有许多其他的属性,

九、保存图片:

plt.savefig('小明成绩变化图.png')

十、显示图片:

plt.show()

十一、删除边框:

这里有四个方向,可以选择删除哪一个方向的边框。

ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)

十二、显示/不显示网格:

ax.grid(True)
ax.grid(False)

到此这篇关于教你学会通过python的matplotlib库绘图的文章就介绍到这了,更多相关python的matplotlib库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python使用matplotlib库生成随机漫步图

    本教程使用python来生成随机漫步数据,再使用matplotlib将数据呈现出来 开发环境 操作系统: Windows10 IDE: Pycharm 2017.1.3 Python版本: Python3.6 Python第三方库:matplotlib 开始实战 1. 创建RandomWalk()类 为了模拟随机漫步,我们将创建一个名为RandomWalk的类, 它随机地选择方向. from random import choice class RandomWalk(): ""&quo

  • Python基于Matplotlib库简单绘制折线图的方法示例

    本文实例讲述了Python基于Matplotlib库简单绘制折线图的方法.分享给大家供大家参考,具体如下: Matplotlib画折线图,有一些离散点,想看看这些点的变动趋势: import matplotlib.pyplot as plt x1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] y1=[30,31,31,32,33,35,35,40,47,62,99,186,480] x2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1

  • python matplotlib库绘制条形图练习题

    练习一:假设你获取到了2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据? a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机

  • python matplotlib库绘制散点图例题解析

    假设通过爬虫你获取到了北京2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温随时间(天)变化的某种规律? a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23] b = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,

  • Python Matplotlib库入门指南

    Matplotlib简介 Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形.最初是模仿了Matlab图形命令, 但是与Matlab是相互独立的. 通过Matplotlib中简单的接口可以快速的绘制2D图表 初试Matplotlib Matplotlib中的pyplot子库提供了和matlab类似的绘图API. 复制代码 代码如下: import matplotlib.pyplot as plt  

  • Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】

    本文实例讲述了Python实现曲线拟合操作.分享给大家供大家参考,具体如下: 这两天学习了用python来拟合曲线. 一.环境配置 本人比较比较懒,所以下载的全部是exe文件来安装,安装按照顺利来安装.自动会找到python的安装路径,一直点下一步就行.还有其他的两种安装方式:一种是解压,一种是pip.我没有尝试,就不乱说八道了. 没有ArcGIS 环境的,可以不看下面这段话了. 在配置环境时遇见一个小波折,就是原先电脑装过ArcGIS10.2 ,所以其会默认安装python2.7,而且pyth

  • python matplotlib库的基本使用

    matplotlib简介 如果你在大学里参加过数学建模竞赛或者是用过MATLAB的话,相比会对这一款软件中的画图功能印象深刻.MATLAB可以做出各种函数以及数值分布图像非常的好用和方便.如果你没用过呢也没关系,知道这么回事就好了.MATLAB虽然好用,但毕竟是收费软件,而且相比于MATLAB,很多人更喜欢Python的语法. 所以呢MATLAB就被惦记上了,后来有大神仿照MATLAB当中的画图工具,也在Python当中开发了一个类似的作图工具.这也就是我们今天这篇文章要讲的matplotlib

  • python利用matplotlib库绘制饼图的方法示例

    介绍 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并且 Gallery页面 中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定. matplotlib的安装方法可以点击这里 这篇文章给大家主要介绍了python用matplotlib绘制饼图的方法,话不多说,下面来看代码

  • Python Matplotlib库安装与基本作图示例

    本文实例讲述了Python Matplotlib库安装与基本作图.分享给大家供大家参考,具体如下: 不论是数据挖掘还是数据建模,都免不了数据可视化的问题.对于Python来说,Matplotlib是著名的绘图库,它主要用于二维绘图,简单的三维绘图. 安装Matplotlib 通过pip安装Matplotlib步骤: 在cmd窗口下,进入到pip安装目录,在命令提示符中依次输入 python -m pip install -U pip setuptools python -m pip instal

  • Python三维绘图之Matplotlib库的使用方法

    前言 在遇到三维数据时,三维图像能给我们对数据带来更加深入地理解.python的matplotlib库就包含了丰富的三维绘图工具. 1.创建三维坐标轴对象Axes3D 创建Axes3D主要有两种方式,一种是利用关键字projection='3d'l来实现,另一种则是通过从mpl_toolkits.mplot3d导入对象Axes3D来实现,目的都是生成具有三维格式的对象Axes3D. #方法一,利用关键字 from matplotlib import pyplot as plt from mpl_

  • 用pip给python安装matplotlib库的详细教程

    Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 1.首先在python里安装pip,打开安装python的文件夹,找到python\scripts查看是否有pip.exe,如果有说明python里已经安装了pip,直接进入下一步.如果没有pip.exe,则需要先安装pip,官网上有详细教程,此处不再介绍.链接https://pip.pypa.io/en/stable/installing/ 2.添加环境变量,右键我的电脑

  • Python画柱状统计图操作示例【基于matplotlib库】

    本文实例讲述了Python画柱状统计图操作.分享给大家供大家参考,具体如下: 一.工具:python的matplotlib.pyplot 库 二.案例: import matplotlib.pyplot as plt import numpy as np #添加图形属性 plt.xlabel('Age range') plt.ylabel('Number') plt.title('The statistics of face age dataset') a = plt.subplot(1, 1,

  • 详解python安装matplotlib库三种失败情况

    (可能只有最后一句命令有用,可能全篇都没用) (小白方法,可能只适用于本人情况) 安装matplotlib时,出现的三种失败情况 1.read timed out 一开始我在pycharm终端使用pip install matplotlib时,出现的是下图所示情况,大致情况是安装时间太长,所以当时我用了清华镜像,将原来的命令改成了pip install -i https://mirrors.ustc.edu.cn/pypi/web/simple/ matplotlib,速度是上来了,但是还是安装

  • python matplotlib库直方图绘制详解

    例题:假设你获取了250部电影的时长(列表a中),希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据? 一些概念及问题: 把数据分为多少组进行统计 组数要适当,太少会有较大的统计误差,太多规律不明显 组数:将数据分组,共分为多少组 组距:指每个小组的两个端点的距离 组数:极差 / 组距,也就是 (最大值-最小值)/ 组距 频数分布直方图与频率分布直方图,hist()方法需增加参数normed 注意:一般来说能够使用plt.hi

随机推荐