IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python数据可视化~图表样式的美化 -> 正文阅读

[Python知识库]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()

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:11:09  更:2022-09-25 23:11:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 3:07:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计