Matplotlib学习笔记(配置项,格式化字符,颜色,作图)

tech2022-12-29  83

Matplotlib是一款风格类似Matlab的基于Python的绘图库。它提供了一整套和Matlab相类似的命令API,可以方便地将它作为绘图控件,嵌入GUI应用程序中,是python机器学习的三剑客之一。

文章目录

一、Matplotlib的配置文件及配置项二、格式化字符三、 Matplotlib颜色设置(1)标准方法:八种默认颜色(2)合法的HTML颜色(3)归一化方法:RGB元组法四、Matplotlib的使用(1)控制图形内的文字、注释、箭头等属性方法(2)作图

一、Matplotlib的配置文件及配置项

通过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轴的主刻度和次刻度设置颜色、大小、方向、以及标签大小

二、格式化字符

字符描述-实线样式–短横线样式-.点画线样式:虚线样式.点标记,像素标记o圆标记v倒三角标记^正三角标记<左三角标记>右三角标记1下箭头标记2上箭头标记3左箭头标记4右箭头标记s正方形标记p五边形标记*星形标记h六边形标记1H六边形标记2+加号标记xX标记D菱形标记d窄菱形标记|竖直线标记_水平线标记

示例:

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()

输出

三、 Matplotlib颜色设置

(1)标准方法:八种默认颜色

字符颜色‘b’蓝色‘g’绿色‘r’红色‘c’青色‘m’品红色‘y’黄色‘k’黑色‘w’白色

(2)合法的HTML颜色

使用HTML十六进制字符串color=‘eeefff’,使用合法的HTML颜色名字(‘red’,'chartreuse’等)

(3)归一化方法:RGB元组法

可以传入一个归一化到[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()

输出:

四、Matplotlib的使用

(1)控制图形内的文字、注释、箭头等属性方法

Pyplot函数API方法描述text()mpl.axex.Axes.text()在Axes对象的任意位置添加文字xlabel()mpl.axex.Axes.set_xlabel()为x轴添加标签ylabel()mpl.axex.Axes.set_ylabel()为y轴添加标签title()mpl.axex.Axes.set_title()为Axes对象添加标题legend()mpl.axex.Axes.legend()为Axes对象添加图例figtetxt()mpl.figure.Figure.text()在figure对象的任意位置添加文字suptitle()mpl.figure.Figure.suptitle()为Figure对象添加中心化标题annotate()mpl.axes.Axes.annotate()为Axes对象添加注释(箭头可选)

导入图片:plt.imread(file_path) 保存图片:plt.imsave(file_path)

(2)作图

示例;

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')

最新回复(0)