matplotlib笔记

2023-05-16

文章目录

  • matplotlib笔记
  • cmap
    • 选择cmap
    • 创建cmap
  • 子图
    • 断点轴(Broken axis)
    • 子图大小
  • 坐标轴
    • scale

matplotlib笔记

有一个在线使用matplotlib的网址

cmap

选择cmap

choose colormap

创建cmap

create colormap
下面自定义从白色变到红色的cmap

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.colors import ListedColormap, LinearSegmentedColormap

N = 256
vals = np.ones((N, 4))
vals[:, 0] = np.linspace(1, 1, N)
vals[:, 1] = np.linspace(1, 0, N)
vals[:, 2] = np.linspace(1, 0, N)
newcmp = ListedColormap(vals)

def plot_examples(cms):
    """
    helper function to plot two colormaps
    """
    np.random.seed(19680801)
    data = np.random.randn(30, 30)

    fig, axs = plt.subplots(1, 2, figsize=(6, 3), constrained_layout=True)
    for [ax, cmap] in zip(axs, cms):
        psm = ax.pcolormesh(data, cmap=cmap, rasterized=True, vmin=-4, vmax=4)
        fig.colorbar(psm, ax=ax)
    plt.show()
plot_example(newcmp)

当然也可以对已有的cmap进行修改,比如把最下面的部分值映射到白色

jet = cm.get_cmap('jet')
newcolors = jet(np.linspace(0, 1, 256))
white = np.array([250/256, 250/256, 250/256, 1])
newcolors[:25, :] = white
newcmp1 = ListedColormap(newcolors)

子图

断点轴(Broken axis)

这里有官方介绍利用子图画断点轴的方式

  • 首先创建子图,调小间距
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True)
fig.subplots_adjust(hspace=0.05)  # adjust space between axes
  • 取消一个子图的label,防止重复
# hide the spines between ax and ax2
ax1.spines.bottom.set_visible(False)
ax2.spines.top.set_visible(False)
ax1.xaxis.tick_top()
ax1.tick_params(labeltop=False)  # don't put tick labels at the top
ax2.xaxis.tick_bottom()
  • 绘制断点位置的双斜线
d = .5  # proportion of vertical to horizontal extent of the slanted line
kwargs = dict(marker=[(-1, -d), (1, d)], markersize=12,
              linestyle="none", color='k', mec='k', mew=1, clip_on=False)
ax1.plot([0, 1], [0, 0], transform=ax1.transAxes, **kwargs)
ax2.plot([0, 1], [1, 1], transform=ax2.transAxes, **kwargs)

子图大小

matplotlib v3.6可以在subplots中指定width_ratio来控制子图的比例,但是在以前的版本,需要使用gridspec_kw={'width_ratios': [...]}

坐标轴

scale

默认有linearlog等,也可以自定义函数调整数值,例如下面使用两个匿名函数定义坐标变化

ax.set_yscale('function', functions=(lambda x: x**2, lambda x: x**0.5))

需要注意上述方法对于线性变换不起作用,需要直接修改tick的值,但是有时候需要细调细节,如下所示对于实际的数据值,坐标轴显示都除以binwidth

from matplotlib.ticker import FuncFormatter
ticks = FuncFormatter(lambda x, pos: '{0:.1E}'.format(x/binwidth))
ax.yaxis.set_major_formatter(ticks)
ax.yaxis.set_minor_formatter(ticks)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matplotlib笔记 的相关文章

  • 在 matplotlib 中分割图例

    是否有可能将一个大图例分成多个 通常是 2 个 较小的图例 from pylab import t arange 0 0 2 0 0 01 s sin 2 pi t plot t s linewidth 1 0 label Graph1 g
  • 将图例添加到曲面图

    我正在尝试向表面图添加图例 但无法这样做 这是代码 import numpy as np from mpl toolkits mplot3d import Axes3D import matplotlib pyplot as plt imp
  • matplotlib vlines 图中未应用 y 轴的最小值

    我正在 matplotlib 中绘制 vlines 图 数据集中的所有 y 值如下 gt 0 我希望 y 轴最底部的刻度能够读取0 但相反 我得到 500 这是代码 usr bin env python import numpy as np
  • pick_event 使用 matplotlib 获取点

    我正在尝试使用pick event通过单击鼠标直接访问点的精确值 def plot self x values list y values list def pick handler event x y event mouseevent x
  • 读取 CSV 并绘制彩色折线图

    我正在尝试在阈值之前和之后绘制带有彩色标记的图表 如果我使用 for 循环for随着时间的推移读取解析输入文件H M我只能绘制和着色两个点 但对于所有的点我无法绘制 Input akdj 12 00 34515 sdfg sgqv 13 0
  • 如何在matplotlib中控制鼠标悬停文本

    当您将鼠标悬停在使用 imshow 显示的图像上时 您可以将鼠标悬停在该图像上以检查其 RGB 值 matplotlib 窗口的右下角 与工具栏共享空间 显示了所指向像素的图像坐标和 RGB 值 x 274 99 y 235 584 241
  • Matplotlib:检查空图

    我有一个循环加载并绘制一些数据 如下所示 import os import numpy as np import matplotlib pyplot as plt for filename in filenames plt figure i
  • 如何在Python中使用matplotlib更改日期格式[重复]

    这个问题在这里已经有答案了 可能的重复 使用 matplotlib 在轴标签中创建带有日期和时间的图表 https stackoverflow com questions 5498510 creating graph with date a
  • Matplotlib:将默认图例 loc 和图例 bbox 更改为锚点

    每次用 pandas 在 matplotlib 中绘图时 为了将图例放在图形之外 我必须执行以下操作 single obj trading curve instrument toppercentile plot legend loc cen
  • 如何使用 matplotlib 面向对象的 API 设置轴刻度和刻度标签

    我需要一些在 Python2 7 下的 Matplotlib pyplot 中绘图的帮助 我想生成一个具有以下 x 轴的图 x 轴应该是这样 https i stack imgur com zcosX jpg 我到目前为止通过使用myaxi
  • pcolormesh 的输入格式

    我正在尝试使用底图制作热量 强度图 我的输入是当时的一组纬度 经度和强度 数据集如下所示 lat 0 lon 0 intensity 0 lat 1 lon 1 intensity 1 lat n lon n intensity n 在每个
  • 如何绘制日期和月份

    我有一张随时间变化的每日趋势图表 年份与此处无关 我只想显示日期和月份 我知道你可以显示年份和月份 但事实并非如此 我尝试创建一个名为 Day Month 的新变量 import datetime as dt df Day df date
  • 删除网格线,但保留框架(matplotlib 中的 ggplot2 样式)

    使用 Matplotlib 我想删除图中的网格线 同时保留框架 即轴线 我已经尝试过下面的代码和其他选项 但我无法让它工作 如何在删除网格线的同时保留框架 我这样做是为了在 matplotlib 中重现 ggplot2 图 我在下面创建了一
  • 如何缩放图像的一部分并插入到 matplotlib 中的同一图中

    我想缩放数据 图像的一部分并将其绘制在同一个图中 看起来有点像这个图 是否可以在同一图中插入缩放图像的一部分 我认为可以用子图绘制另一个图形 但它绘制了两个不同的图形 我还阅读了添加补丁以插入矩形 圆形 但不确定将图像的一部分插入到图中是否
  • 在 folium 中显示栅格数据(不处理任何数据值)。

    我正在尝试使用 folium 显示栅格类型数据 numpy 数组 这是我到目前为止所拥有的 import folium from folium plugins import ImageOverlay import numpy as np f
  • 使用自定义颜色渐变填充两条线之间的区域

    我正在做一项几乎已经完成的作业 但我想对其添加一些小改动 尝试使用基于温度的颜色图而不是简单的颜色来填充两条线之间的区域 绘制线条的方式本质上使它们成为独立的实体 所以我知道我可能需要两个彼此相遇或重叠的颜色图来完成此任务 但我不太确定如何
  • matplotlib 子图的行标题

    In matplotlib Is it possible to set a a separate title for each row of subplots in addition to the title set for the ent
  • 尽管 ioff() 和 matplotlib.use('Agg'),Pyplot“无法连接到 X 服务器 localhost:10.0”

    我有一段代码 它被不同的函数调用 为我执行一些计算 然后将输出绘制到文件中 鉴于整个脚本可能需要一段时间才能运行更大的数据集 并且由于我可能想在给定时间分析多个数据集 所以我开始它screen然后断开连接并关闭我的腻子会话 并在第二天再检查
  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得

随机推荐

  • 树莓派-从入手到使用(一):树莓派入手操作第一步

    新组装的电脑硬盘显卡什么都有 xff0c 把window或linux系统安装在硬盘上就能开机使用了 树莓派没硬盘 xff0c 因此需要加个内存卡当硬盘 xff0c 另外要给这个硬盘上安装系统 xff0c 才能用 本人的是Raspberry
  • jupyter notebook 中运行.py文件

    jupyter notebook页面 xff0c 在需要运行的name py文件目录页面中 xff0c 新建python文件 xff0c 打开 xff0c 在cell中添加如下命令 xff1a run name py 运行该cell即可 根
  • 直方图均衡化及算法步骤

    2019 07 16 xff0c 科学家首次拍摄到一种量子纠缠的照片 量子领域还不懂 xff0c 先不研究 猛一看和今年刚出的黑洞照片倒有几分相似 黑洞照片看起来还是比较清晰地 xff0c 这个是黑白的 xff0c 亮度不均 xff0c 肉
  • 解决mongodb启动报错ERROR: child process failed, exited with error number 14的问题

    在使用mongodb导入数据时 xff0c 数据库无法链接 xff0c 关闭service 后仍然无法启动 可能的原因 xff1a service mongodb restart时启动失败没有正常关闭mongodb引起的 xff0c 比如直
  • 面向对象分析(4):步骤

    面向对象分析通常按照下面的步骤来进行 xff1a xff08 1 xff09 标识对象和类 可以从应用领域开始 xff0c 逐步确定形成整个应用的基础类和对象 这一步需要分析领域中目标系统的责任 xff0c 调查系统的环境 xff0c 从而
  • NTFS for Mac - 免费让 Mac 原生支持NTFS读写

    使用 Mac 电脑的朋友可能都遇过 xff0c 在使用 NTFS 文件格式的移动硬盘或U盘时 xff0c 默认只能以 只读 模式打开 xff0c 也就是说你只能读取复制文件而不能移动 修改 重命名或删除里面的东西 这确实很不便 xff0c
  • C++ 将十六进制字符串转换为二进制字符串

    C 43 43 将十六进制字符串转换为二进制字符串 前言一 源代码 前言 一种简单的方法将十六进制字符串转为二进制字符串 xff0c 不限制十六进制的字节数 一 源代码 传入的十六进制字符串需要转换为大写 xff01 X toupper s
  • python——paramiko详解

    目录 一 SSHClient类 ssh远程连接服务器 connet 远程主机没有本地主机密钥或HostKeys对象时的连接方法 xff0c 需要配置set missing host key policy policy 远程执行命令 在远程服
  • 绿盟网站安全防护服务(vWAF)

    平台 xff1a linux 类型 xff1a 虚拟机镜像 软件包 xff1a basic software devops nsfocus security waf 服务优惠价 按服务商许可协议 云服务器费用 查看费用 立即部署 产品详情
  • 华为服务器操作系统EulerOS V2.0

    平台 xff1a linux 类型 xff1a 虚拟机镜像 软件包 xff1a java 1 8 0 php 5 4 16 python 2 7 5 qt 4 8 5 tomcat 7 0 69 basic software euleros
  • 星环一站式大数据平台-4.6

    平台 xff1a arm 类型 xff1a ARM 模板 软件包 xff1a 星环一站式大数据平台 basic software big data hadoop tdh tos transwarp 大数据 星环科技 星环一站式大数据平台 云
  • 故障排除:无法启动、访问或连接到 Azure 虚拟机上运行的应用程序

    有多种原因可导致无法启用或连接到在 Azure 虚拟机 VM 上运行的应用程序 原因包括应用程序未在预期端口上运行或侦听 侦听端口受到阻止 xff0c 或网络规则未将流量正确传递到应用程序 本文说明有条理地找到问题并更正问题 如果在使用 R
  • 文件系统损坏导致虚拟机无法正常启动的问题及解决方法

    简介 计算机的文件系统是一种存储和组织计算机数据的方法 xff0c 它使得对其访问和查找变得容易 xff0c 文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念 xff0c 用户使用文件系统来保存数据不必关心
  • 连接到 Azure (Resource Manager) 上的 SQL Server 虚拟机

    概述 本主题介绍如何连接到运行于 Azure 虚拟机的 SQL Server 实例 它介绍了一些常规连接方案 xff0c 并提供了在 Azure VM 中配置 SQL Server 连接的详细步骤 Note Azure 具有用于创建和处理资
  • 网络安全组(NSG)简介

    韩源 xff0c 资深工程师 xff0c 存储和灾备专家 Azure 网络安全解析 作为公有云最重要环节之一 xff0c 网络安全一直是 Azure 的重中之重 在 Azure 中 xff0c 多种安全技术共同构成了立体的网络保护 xff1
  • gnome manjaro设置无法打开

    本文转载自 xff1a https joshtronic com 2018 04 02 unable to open gnome settings on arch linux after gnome upgrade 我经常会写关于主题的博客
  • 手动将经典 VM 从 VHD 迁移到新的 ARM 托管磁盘 VM

    本部分有助于将现有 Azure VM 从经典部署模型迁移到资源管理器部署模型中的托管磁盘 计划迁移到托管磁盘 本部分可帮助你针对 VM 和磁盘类型做出最佳决策 位置 选取 Azure 托管磁盘可用位置 如果要迁移到高级托管磁盘 xff0c
  • 适用于 Azure 虚拟网络的常见 PowerShell 命令

    如果想要创建虚拟机 xff0c 需要创建虚拟网络或了解可在其中添加 VM 的现有虚拟网络 通常情况下 xff0c 创建 VM 时 xff0c 还需考虑创建本文所述资源 有关安装最新版 Azure PowerShell 选择订阅和登录到帐户的
  • 创建包含多个子网的虚拟网络

    本教程介绍如何创建包含独立公共子网和专用子网的基本 Azure 虚拟网络 虚拟网络中的资源可以彼此通信 xff0c 并可以与连接到虚拟网络的其他网络中的资源通信 可在虚拟网络中相同或不同的子网中创建 Azure 资源 xff0c 如虚拟机
  • matplotlib笔记

    文章目录 matplotlib笔记cmap选择cmap创建cmap 子图断点轴 Broken axis 子图大小 坐标轴scale matplotlib笔记 有一个在线使用matplotlib的网址 cmap 选择cmap choose c