文章目录
一、简介:
1.安装
pip install matplotlib
二、matplotlib.pyplot
1.简介
matplotlib.pyplot是一个用于python编程语言中的2D图形的绘图库
2.import as
import matplotlib.pyplot as plt
3.参考
Python第三方库matplotlib(2D绘图库)入门与进阶
三、图的元素设置
0.总汇
功能 | 函数 | 参数 |
---|---|---|
显示图片 | %matplot inline与plt.show() | null |
标签-图片 | plt.title() | 一般是字符串 |
标签-x坐标轴 | plt.xlabel() | |
标签-y坐标轴 | plt.ylabel() | |
网格 | plt.grid() | 必选参数True,可选参数color |
边界-x轴 | plt.xlim() | 元组类型或是列表类型 |
边界-y轴 | plt.ylim() | |
刻度-x轴 | plt.xticks() | 列表类型,range(),np.arang() |
刻度-y轴 | plt.yticks() |
1.显示
%matplot inline与plt.show():
两者是用来将图像显示出来的,使用两者之一。
%matplot inline是在Jupyter中特有地用来自动显示图像的。意思是有%matplotlib inline 的存在,不必再输入 plt.show(),图像将自动显示出来。
plt.show()在任何IDE中(包括Jupyter Notebook)中都可以使用。
#只有在Jupyter Notebook中
import matplotlib.pyplot as plt
%matplotlib inline
plt.plot([1,2,3],[4,5,1])
#任何IDE中
import matplotlib.pyplot as plt
plt.plot([1,2,3],[4,5,1])
plt.show()
工具Jupyter Notebook
使用说明:https://www.cnblogs.com/nxld/p/6566380.html
2.保存的图像分辨率
matplotlib.rcParams['figure.figsize']#图片像素
matplotlib.rcParams['savefig.dpi']#分辨率
plt.savefig('plot123_2.png',dpi=200)#指定分辨率
3.标题文字
区域 | 函数 |
---|---|
图片 | plt.title() |
x坐标轴 | plt.xlabel() |
y坐标轴 | plt.ylabel() |
from matplotlib import pyplot as plt
x = [5,2,7]
y = [2,16,4]
plt.plot(x,y)
#图片的标题
plt.title('Image Title')
#坐标轴X轴
plt.xlabel('X axis')
#坐标轴Y轴
plt.ylabel('Y axis')
plt.show()
显示中文标题
将上这些
#coding=utf-8
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
#更改字体
mpl.rcParams['axes.unicode_minus'] = False
#解决更改字体导致显示不出负号的后遗症
4.网格
from matplotlib import pyplot as plt
x = [5,8,10]
y = [12,16,6]
plt.plot(x,y)
#显示网格
#必选参数True,可选参数color
plt.grid(True,color='blue')
plt.show()
5.边界
限定数据显示的部分:a~b,包括b的
from matplotlib import pyplot as plt
x = [5,8,10]
y = [12,16,6]
plt.plot(x,y)
#元组类型
plt.xlim((4,12))
#列表类型
plt.ylim([5,20])
plt.show()
from matplotlib import pyplot as plt
x = [5,8,10]
y = [12,16,6]
plt.plot(x,y)
plt.xlim([5,10])
plt.ylim([5,15])
plt.show()
6.刻度
import numpy as np
from matplotlib import pyplot as plt
x = [5,8,10]
y = [12,16,6]
plt.plot(x,y)
#列表类型
plt.xticks([4,5,6,7,8,9,10,11])
#numpy的ndarray类型
plt.yticks(np.arange(5,20,1.5))
#内置的range()函数生成的整数数列也行,plt.yticks(range(3,20))
#但range()只能生成整数数列,而不如np.arange()可以生成浮点数数据
plt.show()
只是标注轴上的刻度,并不能代替边界,不想见到的数据还是会出现
import numpy as np
from matplotlib import pyplot as plt
x = [5,8,10]
y = [12,16,6]
plt.plot(x,y)
plt.xticks([7,8,9,10,11])
plt.yticks(np.arange(5,20,1.5))
plt.show()
7.刻度精度
就是设置刻度的小数位数即精度
import numpy as np
from matplotlib import pyplot as plt
import pandas as pd
df = pd.DataFrame(np.random.rand(10,2),columns=['A','B'])
fig = df.plot(figsize=(8,4)) # figsize:创建图表窗口,设置窗口大小
plt.xticks(range(10)) # 设置x刻度
plt.yticks(np.arange(0,1.2,0.2)) # 设置y刻度
fig.set_xticklabels("%.1f" %i for i in range(10)) # x轴刻度标签
fig.set_yticklabels("%.2f" %i for i in np.arange(0,1.2,0.2)) # y轴刻度标签
plt.show()
???代码
import numpy as np
import matplotlib.pyplot as plt
#原始数据
X=[1 ,2 ,3 ,4 ,5 ,6]
Y=[2.6 ,3.4 ,4.7 ,5.5 ,6.47 ,7.8]
z1 = np.polyfit(X,Y,1)
#用一次多项式拟合,相当于线性拟合.
#ployfit()的第三个参数表示多项式的次数
#ployfit()返回的结果表示[按次数降序排列的多项式的系数]
print (z1)
#[1.02885714 1.47733333]
p1 = np.poly1d(z1)
#polyld()传入[多项式的系数]
#polyld()返回多项式的函数表示,按项的次数降序排列
print (p1)
#1.029 x + 1.477
#作图
x = np.arange(1,8)
#X轴选取从1到7的段
y = z1[0] * x + z1[1]
plt.figure()
plt.scatter(X, Y)
#scatter分散
#参数是数据X,Y
plt.plot(x, y)
#plot制图
#参数是函数x,y
plt.show()