Matplotlib

本文介绍了Python的Matplotlib库,包括Pyplot子库的plot函数绘制线条,自定义标记和线条样式,设置轴标签和标题,绘制网格线,以及多图绘制。还讲解了scatter函数用于散点图,bar函数绘制柱状图,pie函数绘制饼状图,以及图像的保存和读取。
摘要由CSDN通过智能技术生成

Python的绘图库,将数据图形化,并提供各种多样化的输出格式,可以用来绘制各种静态,动态,交互式的图标。

本文学习内容主要来自:菜鸟教程

一. Pyplot

Matplotlib的子库,是常用的绘图模块,包含一系列绘图函数。

1. plot()函数

绘制二维图形的基本函数,用于画图可以绘制点和线

import matplotlib.pyplot as pl
import numpy as np
import matplotlib

xpoints = np.array([0,1])
ypoints = np.array([0,10])

pl.plot(xpoints,ypoints)
pl.show()

 

 

二. 绘图标记

给坐标自定义一些不同的标记,用plot()方法的marker参数定义

import matplotlib.pyplot as pl
import numpy as np
import matplotlib

x = np.arange(0,12,0.1)
y = np.sin(x)
z = np.cos(x)

pl.plot(x,y,x,z,marker = 'o')
pl.show()

 具体样式有很多,可以参考绘图标记

 2. fmt参数

定义了基本格式:标记,线条样式,颜色等

 

3. 自定义坐标标记大小和颜色 

import matplotlib.pyplot as pl
import numpy as np
import matplotlib

y = np.arange(1,5,1)
pl.plot(y, marker = 'o', ms = '25', mfc = 'r', )
pl.show()

 

三. 绘图线

上面是自定义点标记格式的,这是自定义线样式的:类型、大小、颜色

1. 类型

使用linestyle(ls)参数定义

2.颜色

使用color(c)参数定义

 3. 宽度

使用linewidth(lw)定义,可以是浮点数

import matplotlib.pyplot as pl
import numpy as np
import matplotlib


y1 = np.arange(1,5,1)
pl.plot(y1, marker = 'o', ms = '25', mfc = 'r', color = 'g', linestyle = 'dotted', linewidth = '10' )
pl.show()

 

 

一个综合自定义点样式、线条样式的实例。

 

 四. 轴标签和标题

使用xlabel()和ylabel()设置x轴和y轴的标签;使用title()设置标题

import matplotlib.pyplot as pl
import numpy as np
import matplotlib


y1 = np.arange(1,5,1)
pl.plot(y1, marker = 'o', ms = '25', mfc = 'r', color = 'g', linestyle = 'dotted', linewidth = '10' )
pl.ylabel("values")
pl.xlabel("meters")
pl.title("HMOE")
pl.show()

 对于字体使用在轴函数或标题函数中的fontproperties参数即可,不过要注意默认不支持中文,需下载相应字体文件或使用系统自带的字体。

至于位置由loc参数设置,默认为‘center’,此外还有‘left’,‘right’;

五. 网格线

使用pylpot中的gird()方法设置图表中的网格线

import matplotlib.pyplot as pl
import numpy as np
import matplotlib


y1 = np.arange(1,5,1)
pl.plot(y1, marker = 'o', ms = '25', mfc = 'r', color = 'g', linestyle = 'dotted', linewidth = '10' )
pl.ylabel("values")
pl.xlabel("meters")
pl.title("HMOE")
pl.grid(color = 'r', linestyle = '--', linewidth = 0.5)
pl.show()

 

 

 六. 绘制多图

可以使用pyplot中的subplot()和subplots()方法绘制多个子图

1. subplot()

在绘图时需要制定位置

刚开始没咋看懂,看了看代码才懂了,举一些例子来说吧:

subplot(1,2,1):表示整个页面的分成了1*2的图片区域(也就是一行,每行两个图),现在绘制是序列号为1的图形(序列号就是index,从第一行左边开始编号)

subplot(1,2,2):还是一个1*2图片区域,不过现在绘制的是第二个图形

subplot(2,2,3):现在是2*2图片区域,正在绘制第三个图形(也就是第二行第一个图形) 

import matplotlib.pyplot as pl
import numpy as np
import matplotlib

# 这里把页面分成2*2;一共四个图形区域,只绘制第一个和第三个图形
pl.subplot(2,2,1)   # 表示绘制第一个图形
y1 = np.arange(1,5,1)
pl.plot(y1, marker = 'o', ms = '25', mfc = 'r', color = 'g', linestyle = 'dotted', linewidth = '10' )
pl.ylabel("values")
pl.xlabel("meters")
pl.title("HMOE")
pl.grid(color = 'r', linestyle = '--', linewidth = 0.5)

pl.subplot(2,2,3)  # 表示绘制第三个图形
y2 = np.arange(1,10,2)
pl.plot(y1, marker = 'o', ms = '25', mfc = 'r', color = 'g', linestyle = 'dotted', linewidth = '10' )
pl.ylabel("values")
pl.xlabel("meters")
pl.title("CARS")

pl.suptitle("PRCIES")  # 整个页面的总标题
pl.show()

 2. subplots()

可以一次生成多个图形;

具体实例参考菜鸟教程subplots

七. 散点图

使用scatter()方法绘制散点图

 

 1.图标大小:

点大小可以自定义设置,如果需要每个点的大小各不相同,将大小定义为一个数组即可,不过数组元素个数要与点个数相对应。

sizes = np.array([15,26,451,451,50])
pl.scatter(x, y, s=sizes)
pl.show()

2.设置颜色

颜色也是同理,需要不同颜色则定义一个颜色数组;

也可以通过颜色条Colormap设置,每种颜色都有一个范围从0到100的值,设置颜色条需要camp参数,如果需要显示颜色条,使用pl.colorbar()方法。

import matplotlib.pyplot as pl
import numpy as np
import matplotlib

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

pl.scatter(x, y, c=colors, cmap='BuPu')

pl.colorbar()

pl.show()

 

八. 柱形图

使用bar()方法绘制柱形图

使用width参数设置宽度;使用barh()方法绘制水平的柱状图,使用height参数设置宽度

颜色同理可以使用数组绘制不同颜色

九. 饼状图

使用pie()方法绘制饼图(参数太多了,具体查阅饼图


y = np.array([35, 25, 25, 15])

pl.pie(y,
        labels=['A','B','C','D'],  # 设置饼图标签
        colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"],  # 设置饼图颜色
       )
pl.title("demo")  # 设置标题
pl.show()

饼图的绘制默认从x轴正半轴逆时针开始绘制,可以定义参数startangle参数自定义开始角度;

使用explode参数可以达到突出某个扇区的效果,如下:

explode = (0,0,0.1,0)  #  突出第三个扇区,0~1之间,数值越大扇区离中心点越远
pl.pie(y,
        labels=['A','B','C','D'],  # 设置饼图标签
        colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"],  # 设置饼图颜色
        shadow = True,
        explode = explode
       )

 

 十. imsave()

将图像数据保存到磁盘上

 

# 创建一个二维的图像数据
img_data = np.random.random((100, 100))

# 显示图像
pl.imshow(img_data)

# 保存图像到磁盘上
pl.imsave('runoob-test.png', img_data)

十一.imread()

从图像文件中读取图像数据

img = plt.imread('map.jpeg')

# 显示图像
plt.imshow(img)
plt.show()

 

还有各种对图像的操作:裁剪、变暗、改变颜色等

绘制图像还有一些特殊的,比如直方图,二维的灰度图像等等,以后有需要在深入学习吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值