无法使用 matplotlib 设置脊柱线样式

2024-04-12

我尝试设置 matplotlib 图脊柱的线条样式,但由于某种原因,它不起作用。我可以将它们设置为不可见或使它们变细,但我无法更改线条样式。

我的目标是将一个图分成两部分,以在顶部显示异常值。我想将相应的底部/顶部脊柱设置为点状,以便它们清楚地显示有中断。

import numpy as np
import matplotlib.pyplot as plt

# Break ratio of the bottom/top plots respectively
ybreaks = [.25, .9]

figure, (ax1, ax2) = plt.subplots(
    nrows=2, ncols=1,
    sharex=True, figsize=(22, 10),
    gridspec_kw = {'height_ratios':[1 - ybreaks[1], ybreaks[0]]}
)

d = np.random.random(100)

ax1.plot(d)
ax2.plot(d)

# Set the y axis limits
ori_ylim = ax1.get_ylim()
ax1.set_ylim(ori_ylim[1] * ybreaks[1], ori_ylim[1])
ax2.set_ylim(ori_ylim[0], ori_ylim[1] * ybreaks[0]) 

# Spine formatting
# ax1.spines['bottom'].set_visible(False)  # This works
ax1.spines['bottom'].set_linewidth(.25)  # This works
ax1.spines['bottom'].set_linestyle('dashed')  # This does not work

ax2.spines['top'].set_linestyle('-')  # Does not work
ax2.spines['top'].set_linewidth(.25)  # Works

plt.subplots_adjust(hspace=0.05)

我希望上面的代码能够绘制顶部图的底部脊柱和底部图的顶部脊柱虚线。

我想念什么?


第一个应该提到的是,如果不更改线宽,虚线样式显示正常。

ax1.spines['bottom'].set_linestyle("dashed")

不过间距可能有点太紧了。这是由于capstyle被设置为"projecting"默认情况下用于脊柱。

因此可以设置capstyle to "butt"相反(这也是图中法线的默认值),

ax1.spines['bottom'].set_linestyle('dashed')
ax1.spines['bottom'].set_capstyle("butt")

或者,可以将破折​​号进一步分开。例如。

ax1.spines['bottom'].set_linestyle((0,(4,4)))

现在,如果您还将线宽设置得较小,那么您将需要按比例增加间距。例如。

ax1.spines['bottom'].set_linewidth(.2)  
ax1.spines['bottom'].set_linestyle((0,(16,16))) 

请注意,由于使用了抗锯齿功能,屏幕上的线条实际上并未变细。它只是被洗掉,因此颜色变得更浅。因此,总的来说,将线宽保持在 0.72 点左右(0.72 点 = 100 dpi 下的 1 像素)并将颜色更改为浅灰色可能是有意义的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 matplotlib 设置脊柱线样式 的相关文章

  • 在二维数组中进行所有可能的组合

    我正在尝试制作具有所有可能组合的 4x4 16 像素黑白图像数组 我制作了以下数组作为模板 template 0 0 0 0 start with all white pixels 0 0 0 0 0 0 0 0 0 0 0 0 然后我想迭
  • 如何打印前面有一定数量空格的整数?

    C has printf Xd Y 它只打印整数 X 并使其在控制台窗口上占据 Y 空格 例如 printf 3d 10 console 10 printf 5d 5 console 5 我如何在 python 3 中使用它 This pr
  • 使用ideone时如何传入命令行参数?

    我正在使用 ideone 在线解释器 http ideone com http ideone com 来测试一些 C 和 Python 程序 如何指定命令行参数而不是使用 STDIN 输入 看起来你不能 但是快速破解应该做的伎俩 stati
  • 创建 xyz 海拔数据的曲面图

    我正在尝试用 python 创建一座山的表面图 其中我有一些 xyz 数据 最终结果应该类似于that https i stack imgur com rKQV0 png 该文件的格式如下 616000 0 90500 0 3096 712
  • 如何在Python + Selenium中获取元素的值

    我在我的 Python 3 6 3 代码中得到了这个 HTML 元素 作为 Selenium网页元素当然 span class ocenaCzastkowa masterTooltip style color 000000 alt 5 sp
  • 在 python 中发送标头[重复]

    这个问题在这里已经有答案了 我有以下 python 脚本 我想发送 假 标头信息 以便我的应用程序就像 Firefox 一样运行 我怎么能这么做呢 import urllib urllib2 cookielib username passw
  • 如何在plotly(python)中的刻度标签和图形之间添加空格?

    如果我使用绘图创建水平条形图 则每个条形的标签都与图表相对应 我想在标签和图表之间添加一些空间 填充 边距 我怎样才能做到这一点 Example import plotly offline as py import plotly graph
  • 获取字符串模板中所有标识符列表的函数(Python)

    对于标准库string template在Python中 有没有一个函数可以获取所有标识符的列表 例如 使用以下 xml 文件
  • Python Apache Beam 端输入断言错误

    我对 Apache Beam Cloud Dataflow 还很陌生 所以如果我的理解不正确 我深表歉意 我正在尝试通过管道读取大约 30 000 行长的数据文件 我的简单管道首先从 GCS 打开 csv 从数据中提取标题 通过 ParDo
  • matplotlib:渲染到缓冲区/访问像素数据

    我想使用 matplotlib 生成的图作为 OpenGL 中的纹理 到目前为止 我遇到的 matplotlib 的 OpenGL 后端要么不成熟 要么已经停止使用 所以我想避免使用它们 我当前的方法是将图形保存到临时 png 文件中 并从
  • Python FTP下载550错误

    我编写了一个 ftp 爬虫来下载特定文件 它会一直工作 直到找到要下载的特定文件 然后抛出此错误 ftplib error perm 550 该文件存在于我的下载文件夹中 但文件大小为 0 kb 我需要转换某些内容才能下载吗 我可以访问 f
  • Pandas 中每列的曲线拟合 + 外推值

    我有一个包含大约 300 列的数据集 每一列都与深度相关 Pandas DataFrame 的简化版本看起来像这样 import matplotlib pyplot as plt import numpy as np import pand
  • 使用具有可变数量索引的 numpy mggrid

    如何将 numpy mgrid 与可变数量的索引一起使用 我在 github 上找不到任何人将其与硬编码值以外的任何内容一起使用的示例 import numpy as np np mgrid 1 10 1 10 this works fin
  • Python GTK3 Treeview 向上或向下移动选择

    如何在树视图中向上或向下移动所选内容 我的想法是 我可以使用向上和向下按钮将选择向上移动一行或向下移动一行 我的 Treeview 使用 ListStore 不确定这是否重要 首先 我将使用我熟悉的 C 代码 如果您在将其翻译为 Pytho
  • python 中的 F 字符串前缀给出语法错误[重复]

    这个问题在这里已经有答案了 我有一个名为 method 的变量 它的值是 POST 但是当我尝试运行时print f method method is used 它不断在最后一个双引号处给出语法错误 我找不到它这样做的原因 我正在使用 py
  • 本地主机上的 Google App Engine GQL 查询

    我正在 Google App Engine Windows 上的 SDK 版本 1 7 0 上开发一个应用程序 我需要经常测试该应用程序 并且此测试涉及数据存储上的大量 GQL 查询 您可以在 App Engine 管理界面的浏览器中在线运
  • 如何将Python包从旧版本安装到新版本?

    我正在使用 python 3 7 最近在 Linux 中安装了 python 3 8 是否有任何 bash 命令或脚本可以获取 3 7 的所有软件包列表并在 3 8 版本中一一安装 我想避免每个包裹都手工完成 注意 我将它们安装在我的系统中
  • Django 中使用外键的抽象基类继承

    我正在尝试在 Django 支持的网站上进行模型继承 以遵守 DRY 我的目标是使用一个名为 BasicCompany 的抽象基类来为三个子类提供通用信息 Butcher Baker CandlestickMaker 它们位于各自的应用程序
  • 为数据集生成随机 JSON 结构排列

    我想生成 JSON 结构的许多不同排列作为同一数据集的表示 最好不需要对实现进行硬编码 例如 给定以下 JSON name smith occupation agent enemy humanity nemesis neo 应该产生许多不同
  • 如何在不同的目录中执行python脚本?

    Solved对于可能觉得这有帮助的人 请参阅下面我的答案 我有两个脚本 a py 和 b py 在我当前的目录 C Users MyName Desktop MAIN 中 我运行 gt python a py 第一个脚本 a py 在我当前

随机推荐

  • 应用程序在 4.0 上崩溃,但在 5.0 上不崩溃

    我试图修复一个奇怪的错误 使用 iOS 4 的用户甚至无法在更新后启动我的应用程序 然后崩溃 iOS 5 设备运行良好 我在上次更新中添加的内容是块 但是 block 应该可以在 ios4 上使用 对吧 iOS 4 3 模拟器运行良好 但
  • EMR 如何处理 s3 存储桶的输入和输出?

    我正在启动一个 EMR 集群 并且已经创建了指定的存储桶在 EMR 文档中 http docs aws amazon com emr latest ManagementGuide emr plan output html 但是我应该如何上传
  • PHP MySQL - 每 6 行插入一个 div?

    PHP
  • jquery ui 自动完成:计数结果

    我想知道是否有一种方法可以计算当您在文本框中键入内容时显示的结果数 计算 li 元素的工作原理 但我敢打赌有一个更聪明的方法 谢谢 我认为直接使用 JQueryUI Events 是不可能的 我一直在寻找方法但没有成功 所有关联的事件仅返回
  • 为什么 不扩展以适应其内容?

    我有一个延伸到屏幕边缘的桌子 但主体仅与屏幕一样宽 导致桌子溢出 Demo http jsfiddle net 6REkj http jsfiddle net 6REkj table tr td test td td test td td
  • 没有 JavaScript 的默认 html 表单焦点

    是否可以在不使用 JavaScript 的情况下在 HTML 表单上设置默认输入焦点 例如
  • 什么时候使用内联函数,什么时候不使用它? [复制]

    这个问题在这里已经有答案了 我知道内联是对编译器的提示或请求 用于避免函数调用开销 那么 根据什么可以确定一个函数是否适合内联呢 在什么情况下应该避免内联 避免函数调用的成本只是故事的一半 do use inline代替 define 很小
  • 如何处理微服务架构中的共享模型

    我的目标是创建一个架构 其中服务应该能够彼此独立部署并且完全自治 但是当您有 2 个服务从数据库读取相同对象类型时该怎么办 就我而言 我有一个套接字服务器 微服务 1 和一个 http 服务器 微服务 2 我的用户使用 http 服务器创建
  • JS Maps v3:带有用户个人资料图片的自定义标记

    两天以来 我一直在努力解决一些我认为很简单的事情 在地图上 我必须为每个用户显示一个标记 其中包含用户 FB 个人资料图片 我想知道如何才能得到与此类似的结果 我所尝试的确实很hackish 我把FB图片作为标记图标 我在标记的标签上放置了
  • intellij idea看不到java 9标准类

    我有一个maven使用的项目Java 9 它导入到IntelliJ IDEA 2017 2 3 Community 但由于某种原因它找不到标准的java类 例如String or Float 例如 当我尝试Setup Project JDK
  • 对象到数组(数组的数组)

    我正在尝试使用函数将对象文字转换为数组数组 使用我拥有的两个示例对象 我正在寻找的最终结果将是 ugh grr foo bar blah 138 from obj1 shambala walawala foofighter Barstool
  • 如何为每个用户构建未读项目警报的数据库

    我只是有一个一般的数据库理论问题 我需要制作类似于显示用户已查看或未查看的帖子 项目 例如在论坛中 或未读电子邮件的内容 我所拥有的是多个用户可以查看的帖子 但需要按实际查看过的用户分开 因此 如果用户 A 浏览了帖子 1 则不会再显示帖子
  • 响应式透明重叠 css 圆圈,文本垂直居中对齐

    似乎无法让我的文本在每个圆圈内对齐中心和垂直 尝试将 h1 文本放入另一个 div 显示表中 但在每个圆形类中包含文本时遇到问题 这是我的代码笔和示例代码 HTML div div class circle1 transparent cla
  • 如何获取给定 PIDL 的 IWMDMStorageControl 接口

    我使用 SHBrowseForFolder 选择 MTP 设备上的文件夹 然后我想从那里复制文件 到那里复制文件 IWMDMStorageControl 接口 来自 Windows Media Format 11 SDK 似乎很合适 但是如
  • OAuth 2.0 访问令牌和刷新令牌

    我很难理解刷新和访问令牌的正确用法 我知道刷新令牌与授权相关 访问令牌与身份验证相关 我想更好地解释我的用例 以便有人可以在这里帮助我 我在 Google Merchant Center 中有一个多帐户中心 我想在我的代码中集成最新的 OA
  • 在新线程中调用支持 CUDA 的库

    我编写了一些代码并将其放入它自己的库中 该库使用 CUDA 在 GPU 上进行一些处理 我正在使用 Qt 构建 GUI 前端 作为加载 GUI 的一部分 我调用 CUresult res CUdevice dev CUcontext ctx
  • 全新的 React Native 应用程序在 run-ios xcode 8.3 上失败

    我刚刚使用他们的 CLI 界面创建了一个新的 React Native 应用程序 但在没有进行任何更改的情况下它失败了 当我尝试使用时我第一次注意到这一点version 0 45 1 它似乎仍然发生在version 0 46 1 我当前的版
  • 如何强制 rsync 创建目标文件夹

    Example rsync tmp fol1 fol2 fol3 foln user addr tmp fol1 fol2 fol3 foln 我的主要问题是远程计算机上不存在文件夹 tmp fol1 我可以使用哪些参数来强制 rsync
  • 在 Python 中将任何用户输入转换为 int

    我需要转换用户input to int 以下是我到目前为止所写的内容 但尚未成功 它只接受int 最终目标是让用户输入浮点数 例如 4 5 输出为 4 i input Enter any value print int i int接受整数字
  • 无法使用 matplotlib 设置脊柱线样式

    我尝试设置 matplotlib 图脊柱的线条样式 但由于某种原因 它不起作用 我可以将它们设置为不可见或使它们变细 但我无法更改线条样式 我的目标是将一个图分成两部分 以在顶部显示异常值 我想将相应的底部 顶部脊柱设置为点状 以便它们清楚