Matplotlib是一款风格类似Matlab的基于Python的绘图库。它提供了一整套和Matlab相类似的命令API,可以方便地将它作为绘图控件,嵌入GUI应用程序中,是python机器学习的三剑客之一。
通过matplotlib.rc_params()可以读取配置文件中所有参数及其参数值,如果手动修改了配置文件,那么可以调用rc_params()载入最新的配置。
Matplotlib的配置文件常用配置项:
axex: 设置坐标轴的边界和表面的颜色、坐标刻度值大小和网格的显示
backend: 设置目标TKAgg和GTKAgg
figure: 控制dpi、边界颜色、图形大小和子区(subplot)设置
font: 字体集、字体大小和样式设置
grid: 设置网格颜色和线性
legend:设置图例和其中的文本的显示
line: 设置线条(颜色、线型、宽度等)和标记
patch:是填充2D空间的图形对象,如多边形和圆、控制线宽、颜色和抗锯齿设置等
savefig:可以对保存的图形进行单独设置,例如,设置渲染的文件的背景为白色
verbose:设置matplotlib在执行期间信息输出,例如silent、helpful、debug和debug-annoying
xtick和ytick:为x、y轴的主刻度和次刻度设置颜色、大小、方向、以及标签大小
示例:
import matplotlib.pyplot as plt import numpy as np y = np.arange(1, 5) print(y) plt.plot(y, c='g', marker='o') # 圆形标记 plt.plot(y+1, c='0.5', marker='D') # 菱形标记 plt.plot(y+2, marker='^') # 正三角标记 plt.plot(y+3, 'p') # 五边形标记 plt.show()输出
使用HTML十六进制字符串color=‘eeefff’,使用合法的HTML颜色名字(‘red’,'chartreuse’等)
可以传入一个归一化到[0, 1]的RGB元组,使得color=(0.3,0.3,0.4)等,除上述方法外,title()函数也可以修改颜色,如plt.title(‘Title in a custom color’, color=’#123456’). 示例:
import matplotlib.pyplot as plt import numpy as np y = np.arange(1,5) print(y) plt.plot(y, c='r') plt.plot(y+1, c='0.5') plt.plot(y+2, c='#123456') plt.plot(y+3, c=(0.3, 0.3, 0.4)) plt.show()输出:
导入图片:plt.imread(file_path) 保存图片:plt.imsave(file_path)
示例;
import matplotlib.pyplot as plt import pandas as pd import numpy as np from pandas import Series, DataFrame # 第一步:构造数据,添加画布 x = np.linspace(0, 2*np.pi, 100) y1 = np.sin(x) y2 = np.cos(x) fig = plt.figure(figsize=(10, 6)) # 第二步:向对象fig中添加子视图 ax1 = fig.add_subplot(2, 2, 1) ax1.plot(x, y1) ax1.plot(x, y2) ax1.grid(True, color='green', ls='-.') # 设置网格 plt.title('pic1', size=10, color='black', loc='right', rotation=0, alpha=0.5) ax2 = fig.add_subplot(2, 2, 2) ax2.plot(x, y1) ax2.plot(x, y2) ax2.grid(False, color='green', ls='-.') # 设置网格 plt.axis('off') # 关闭坐标轴 plt.title('pic2', size=10, color='black', loc='right', rotation=0, alpha=0.5) ax3 = fig.add_subplot(2, 2, 3, facecolor='#FFDAB9') ax3.plot(x, y1) ax3.plot(x, y2) plt.ylim([-1.5, 1.5]) plt.xlim([0, 6]) plt.xlabel('X', size=20, color='red', alpha=0.5) plt.ylabel('Y', size=20, color='red', rotation=0, alpha=0.5) plt.title('pic3', size=10, color='black', loc='right', rotation=0, alpha=0.5) ax4 = fig.add_subplot(2, 2, 4) ax4.plot(x, y1, label='sin(x)', ls='--') ax4.plot(x, y2, label='cos(x)', marker='o') plt.axis('equal') # 等量坐标轴 plt.legend(loc=4) # 图例位置 plt.title('pic4', size=10, color='black', loc='right', rotation=0, alpha=0.5) plt.annotate( s='this point mean high', xytext=(3, 1.5), xy=(1.6, 1.2), arrowprops={ 'width': 10, 'headwidth': 20, 'headlength': 10, 'shrink': 1 } ) # 第三步 保存图片 plt.savefig('pic.jpg')