matplotlib绘制图像的时候,会读取本地的配置文件matplotlibrc,通过matplotlibrc文件中的缺省的一些默认的样式,可以完成图表的一些初始化的设置,不要我们全部都一一设置
我们可以通过rc_params()函数查看全部配置选项
返回的是一个RcParams对象,RcParams对象是一个字典对象,键为配置名字,及其属性组成的配置项
所有的配置项按照对象可以分为10中配置元素
包括:lines 线条、patch图形、font字体、text文本、axes坐标系、xtick和ytick刻度、grid网格、legend图例、figure画布及savefig保存图像
配置项 | 说明 | 默认值 |
---|---|---|
lines.color | 线条颜色 | ‘C0’ |
lines.linestyle | 线条类型 | ‘-’ |
lines.linewidth | 线条宽度 | 1.5 |
lines.marker | 线条标记 | ‘None’ |
lines.markeredgecolor | 标记边框颜色 | ‘auto’ |
lines.markeredgewidth | 标记边框宽度 | 1.0 |
lines.markerfacecolor | 标记颜色 | auto |
lines.markersize | 标记大小 | 6.0 |
font.family | 系统字体 | [‘sans-serif’] |
font.sans-serif | 无衬线字体 | [‘DejaVu Sans’… |
font.size | 字体大小 | 10 |
font.style | 字体风格 | ‘normal’ |
axes.unicode_minus | 采用Unicode编码的减号 | True |
axs.prop_cycle | 属性循环器 | cycler(‘color’,[… |
figure.constrained_layout.use | 使用约束布局 | False |
两种修改,局部修改,全局修改
局部修改就是直接在函数里边修改
全局修改,就是在文件中直接修改,这样子就不会老是在代码里面修改
基础色
单词缩写表示颜色
缩写
c cyan 青色
m magenta 洋红色
y yellow 黄色
k black 黑色
r red 红色
g green 绿色
b blue 蓝色
w white 白色
用十六进制或者HTML模式
aliceblue #F0F8FF
RGB
color = (0.3,0.3,0.4)
颜色映射表
matplotlib内置了很多预定义的颜色映射表,方便开发
pyplot模块提供了colormaps()函数查看所有可用的颜色映射表
所有颜色都在这,颜色映射表的名称分为有_r后缀的,和没有的,其中有_r后缀的是没有的同名反转颜色
matplotlib主要有两种使用方式,
第一种是添加关键字参数cmap
第二种是直接用
plt.scatter(x, y, c = np.random.rand(10),cmap = matplotlib.cm.jet ) //直接使用
plt.set_cmap(matplotlib.cm.jet)
matplotlib内置了四种线条
‘:’ 短虚线 ------------
‘-.’ 点划线 ——-——-——
‘–’ 长虚线 — — — ——
‘-’ 实线 ————
实例
ax.plot(data_x,first,linewidth = 2,linestyle= '--')
plt.plot([1,2,3],[1,2,3],marker = '*')
因为设置颜色,标记,线型比较麻烦,所以有一个快捷的语法
'[颜色][标记][线型]'
设置一个品红色的虚线
plt.plot([1,2,3],[1,2,3],'mo--')
Text类常用的属性
fontfamily 字体类别
size 大小
stretch 字体拉伸
style 风格
variant 变体
weight 粗细
rotation 文本角度
print(ms.available)
['Solarize_Light2', '_classic_test_patch', '_mpl-gallery',
'_mpl-gallery-nogrid', 'bmh', 'classic', 'dark_background', 'fast',
'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn', 'seaborn-bright',
'seaborn-colorblind', 'seaborn-dark', 'seaborn-dark-palette',
'seaborn-darkgrid', 'seaborn-deep', 'seaborn-muted',
'seaborn-notebook', 'seaborn-paper', 'seaborn-pastel',
'seaborn-poster', 'seaborn-talk', 'seaborn-ticks',
'seaborn-white', 'seaborn-whitegrid', 'tableau-colorblind10']
使用use函数切换风格
ms.use('seaborn-dark')
使用fill()函数
fill(*args,data = None, facecolor, edgecolor, linewidth, **kewargs)
*args:表示x轴坐标,y轴坐标
facecolor:表示填充的颜色
edgecolor: 边框的颜色
linewidth:边框宽度
fill_between(x, y1, y2 = 0, where = None, interpolate = False,
step = None, data = None, **kwargs)
where 填充区域条件
y1 > y2 表示第一个曲线在上方的时候填充
fill_betweenx(x, y1, y2 = 0, where = None, interpolate = False,
step = None, data = None, **kwargs)
实例
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi, np.pi, 256, endpoint = True)
y1 , y2 = np.sin(x), np.cos(x)
plt.plot(x,y1,linewidth=1.0,color="r",linestyle='--')
plt.plot(x,y2,linewidth=1.0,color='b',alpha=0.5)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xlim(x.min() - 0.5, x.max() * 1 + 0.5)
plt.ylim()
plt.xticks([-np.pi, -np.pi / 2, 0, np.pi / 2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
plt.yticks([-1,-0.5,-0.0,0.5,1.0])
plt.legend(['SIN','COS'])
plt.grid(visible=True,axis='both')
plt.annotate('cos(1)',xy = (1,np.cos(1)), xytext=(1 + 0.25,np.cos(1) + 0.3),arrowprops = dict(arrowstyle="->"))
plt.fill_between(x,y2,1,where=np.abs(x) < 0.5,color='green',alpha = 0.25)
plt.fill_between(x,y2,0,where=(np.abs(x) > 0.5) & (y2 > 0.5),color = 'green',alpha=0.25)
plt.show()