Python数据可视化~图表样式的美化

图表样式概述

默认图表样式

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

图表样式修改

两种修改,局部修改,全局修改
局部修改就是直接在函数里边修改

全局修改,就是在文件中直接修改,这样子就不会老是在代码里面修改

使用颜色

基础色

  1. 单词缩写表示颜色
    缩写
    c cyan 青色
    m magenta 洋红色
    y yellow 黄色
    k black 黑色
    r red 红色
    g green 绿色
    b blue 蓝色
    w white 白色

  2. 用十六进制或者HTML模式
    aliceblue #F0F8FF

  3. RGB
    color = (0.3,0.3,0.4)

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

在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

憨憨小江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值