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

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 六边形标记1
H 六边形标记2
+ 加号标记
x X标记
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张图片

三、 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学习笔记(配置项,格式化字符,颜色,作图)_第2张图片

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

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

你可能感兴趣的:(python,matlab,python,数据可视化)