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

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

一、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
+加号标记
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')

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值