matplotlib有两种基本的画图思路,一种是沿用matlab风格,另一种是使用python风格。由于存在不同的作图风格,因此同一张图可能有很多中不同的代码写法,这里统一使用python风格。
先说明一下作图思路:
- 创建一个figure对象
- 通过figure对象的add_subplot方法增加子图
- 通过axis对象给子图增加一些说明和标识
- 调用axis对象的plot方法,并最终使用plt.show()生成图片
大部分图形都能通过这几个步骤完成,下面通过几个例子来详细说明。
首先引进一些画图所需的包,如果没有安装,请先安装。
import matplotlib.pyplot as pltimport numpy as npimport pandas as pd from sklearn import datasets
(一)子图布局+设置标题
# Intro to pyplotfig1 = plt.figure()fig1.suptitle('figure 1's title') # 定义整个figure的标题ax11 = fig1.add_subplot(121) # 第一个1数字代表1行,第二个2数字代表2列,所以一共有1*2=2个子图。# 第三个数字1代表这是第一个子图。ax11.plot([1, 2, 3, 4], [1, 4, 9, 16],'b-')ax11.axis([0, 6, 0, 20]) # 设置横纵坐标范围ax11.set_title('subplot 1's title') # 定义子图subplot的标题ax12 = fig1.add_subplot(122) # 第三个数字2代表这是第二个子图。ax12.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')ax12.axis([0, 6, 0, 20])ax12.set_title('subplot 2's title')
(二)图形颜色、标记形状和样式
fig2 = plt.figure()fig2.suptitle('figure 2's title')ax21 = fig2.add_subplot(111)t = np.arange(0., 5., 0.2)ax21.plot(t,2*t, t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^') #在同一张图形上画多个子图
plot方法的样式参数格式为:fmt = '[color颜色][marker形状][line线条]' (可以把marker理解成一个个点,line则是辅助链接点的线)
第一个函数图形是(t,2*t),样式为默认样式
第二个函数图形是(t,t,r--),样式为红色r,形状-,线条-
第三个函数图形是(t,t**2即平方,bs),样式为蓝色b,形状s(Square正方形)
第四个函数图形是(t,t**3即立方,g^),样式为绿色g,形状^(triangle_up向上三角形)
以下是常见的样式参数列表
颜色
常见线条Markers类型
常见线条Lines类型
后续更多内容,欢迎继续关注哦~^_^