在共享 x 轴的子图上绘制时 x 刻度消失[重复]

2024-03-30

当我尝试在同一个子图上绘制一条线和一个区域时,会发生这种情况。我发现我的 x 刻度在我调用 ay=ax.twinx() 并在 ay 上绘图后消失了。

这是导致此错误的我的代码。

fig, axes = plt.subplots(nrows=2, ncols=1, figsize=[12,12])
data=pd.DataFrame([[1,2,3],[2,3,4],[3,2,4]])
ix = np.unravel_index(0, axes.shape)
ax=axes[ix]
y=pd.DataFrame(data.iloc[:,0]-data.iloc[:,1])
ax2=ax.twinx()
data.plot(ax=ax,color=['navy','red'])
ax2.plot(y.values, linewidth=2.0)

正如您所看到的,x 刻度消失了。 但是,如果继续绘制,您会发现最后一个子图不受影响。

fig, axes = plt.subplots(nrows=2, ncols=1, figsize=[12,12])
data=pd.DataFrame([[1,2,3],[2,3,4],[3,2,4]])
ix = np.unravel_index(0, axes.shape)
ax=axes[ix]
y=pd.DataFrame(data.iloc[:,0]-data.iloc[:,1])
ax2=ax.twinx()
data.plot(ax=ax,color=['navy','red'])
ax2.plot(y.values, linewidth=2.0)
ix = np.unravel_index(1, axes.shape)
ax=axes[ix]
y=pd.DataFrame(data.iloc[:,0]-data.iloc[:,1])
ax2=ax.twinx()
data.plot(ax=ax,color=['navy','red'])
ax2.plot(y.values, linewidth=2.0)

有两种选择。一个是基于这个问题的答案:matplotlib - pandas - 子图中的双轴没有 xlabel 和 xticks https://stackoverflow.com/questions/35249393/matplotlib-pandas-no-xlabel-and-xticks-for-twinx-axes-in-subploted-figures这是颠倒绘图的顺序。首先绘制两个子图,然后为两个子图创建双轴。

import matplotlib.pyplot as plt
import pandas as pd

fig, axes = plt.subplots(nrows=2, ncols=1)
data=pd.DataFrame([[1,2,3],[2,3,4],[3,2,4]])

ax=axes[0]
y=pd.DataFrame(data.iloc[:,0]-data.iloc[:,1])
data.plot(ax=ax)

ax3=axes[1]
y=pd.DataFrame(data.iloc[:,0]-data.iloc[:,1])
data.plot(ax=ax3)

ax2=ax.twinx()
ax2.plot(y.values)
ax4=ax3.twinx()
ax4.plot(y.values)

plt.show()

现在有时上述可能不是一个选项,因此第二种可能的解决方案是在生成完整的绘图后将刻度再次设置为可见。

[t.set_visible(True) for t in ax.get_xticklabels()]

完整示例:

import matplotlib.pyplot as plt
import pandas as pd


fig, axes = plt.subplots(nrows=2, ncols=1)
data=pd.DataFrame([[1,2,3],[2,3,4],[3,2,4]])

ax=axes[0]
y=pd.DataFrame(data.iloc[:,0]-data.iloc[:,1])
ax2=ax.twinx()
data.plot(ax=ax)
ax2.plot(y.values)

ax3=axes[1]
y=pd.DataFrame(data.iloc[:,0]-data.iloc[:,1])
ax4=ax3.twinx()
data.plot(ax=ax3)
ax4.plot(y.values)

[t.set_visible(True) for t in ax.get_xticklabels()]

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

在共享 x 轴的子图上绘制时 x 刻度消失[重复] 的相关文章

随机推荐

  • 如果存储库中存在更新版本的依赖项,如何使 Maven 构建失败?

    好吧 问题是我希望 maven 检查构建时的依赖版本 并警告我是否有任何较新的依赖版本 事实上 如果我使用某些模块的过时版本 请通知我 我的 Maven 模块 A 有以下依赖项
  • Android CDT:可以在没有 bash 的情况下使用 ndk-build (Windows 中的 Eclipse)吗?

    我在 Windows 上使用 android ndk 版本 r7b 我听说从这个版本开始 您不需要 cygwin 或 bash 来运行 ndk build 可执行文件 但也许我错了 无论如何 我似乎无法仅使用 ndk build 作为命令行
  • ggplot2 方面的问题和关闭裁剪

    过去可以通过关闭剪裁将文本放置在绘图边缘 在 ggplot2 2 2 0 中 这在使用构面的图中似乎不再可能了 但如果不使用构面 仍然可以工作 我发布了一个问题here https github com tidyverse ggplot2
  • UWP 桌面桥和本地应用程序数据虚拟化文件夹位置

    我正在使用 将 Win32 应用程序 Zoom Player 转换为 UWP AppX 模型 桌面桥 转换工具 在 Windows VISTA 中引入的文件夹模型下 不需要创建 写入访问权限的应用程序文件安装在 程序文件 需要创建 写入访问
  • 如何在不使用临时文件的情况下将 .NET 对象序列化到 Azure Blob 存储中?

    我想将 NET 对象存储到 Azure Blob 存储中 目前我使用将其序列化为 XML 文件TextWriter episodeList是我想要序列化的对象 XmlAttributeOverrides overrides new XmlA
  • Java中如何从HashMap中获取键位置

    如何获取地图中的关键位置 如何查看 奥迪 和 宝马 在哪个位置 Map
  • ionic run android:构建失败并出现异常

    什么地方出了错 任务 CordovaLib processDebugResources 执行失败 com android ide common process ProcessException org gradle process inte
  • “#”的未定义方法“url”:字符串

    我使用Carrierwave上传图片 上传后 转到显示页面时出现错误 undefined method url for ActionDispatch Http UploadedFile 0x007f8b6134d610 gt String
  • 通过脚本级命令行参数激活Python的优化模式

    我有一个脚本可以加载各种模块来完成其工作 其中一些模块是heavily布满了断言语句 足以在实际使用中导致显着的速度减慢 我正在做很多涉及变异图的操作 因此有很多断言会迭代整个图 以强制不变量或检查结果的正确性 所以我想允许用户禁用这些检查
  • 方案 - 列表之和

    我正在尝试实现一个计算 list 的函数 其名称是sum define sum elemList if null elemList car elemList sum cdr elemList 0 上面的实现给出了错误的结果 例如 gt su
  • 如何删除 Docker 镜像?

    我有以下图像 alex alexvps sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
  • ruby on Rails 中的 Facebook 重定向 url 打开 ssl 错误

    我已经按照 Ryan 在第 235 集中解释的那样关注了omniauth devise facebook 应用程序 在用户授权后 我们在以下位置收到错误http localhost 3000 auth facebook callback c
  • 创建像 Office 2010 一样的动画启动屏幕

    如何使用 C 创建像 Office 2010 中那样的动画启动屏幕 这个问题是关于winform还是wpf 如果是关于wpf的 动画启动屏幕只不过是加载 主窗口 时显示的 wpf 窗口 您可以按照 wischi 的说明使用 Expressi
  • jquery 移动和 flot 库

    我正在一个小型 jquery 移动框架站点中实现 flot 包含flot的页面 内容div位于辅助页面上 第一次显示浮动页面时 图表呈现得很好 返回到主页并再次前进到浮动页面时 图表不会呈现 内容来自 asp mvc 视图 div div
  • AS3 到 JS 编译器

    我偶然发现了 AS3 到 JS 编译器Jangaroo http www jangaroo net home 看起来它可能是一个有用的工具 因为它支持很多我喜欢的 AS3 功能 还有其他这样的编译器吗 我可以使用其他语言吗 学习一下 编译成
  • 您可以在 display:table-cell 中相对或绝对定位项目吗?

    我有一个链接 我希望它始终位于其所在单元格的右下角 现在该链接位于 元素中 我尝试同时进行绝对定位和相对定位 但可以获得我想要的效果 我有一排有 4 个单元格 当尝试应用绝对位置时 它将元素带到右侧的最后一个单元格 而不是仅仅将其放置在它所
  • matlab中无for循环的行列矩阵乘法

    我遇到以下问题 并且无法想出没有 for 循环的解决方法 考虑两个矩阵 a rand N 3 b rand 3 N 我想要得到的是 b i a i 一个 3 3 矩阵 在第三维中串联所有i 因此 对于上面的示例 结果应该是 3 3 N 矩阵
  • 如何在 Eloquent 中检查行是否被软删除?

    在 Laravel 5 1 中 有没有一种好方法来检查雄辩的模型对象是否已被软删除 我不是在谈论选择数据 而是一旦我有了对象 例如Thing withTrashed gt find id 到目前为止我能看到的唯一方法是 if thing g
  • 证书验证失败:无法获取本地颁发者证书

    我正在尝试使用 python 从网络获取数据 我为其导入了 urllib request 包 但在执行时出现错误 certificate verify failed unable to get local issuer certificat
  • 在共享 x 轴的子图上绘制时 x 刻度消失[重复]

    这个问题在这里已经有答案了 当我尝试在同一个子图上绘制一条线和一个区域时 会发生这种情况 我发现我的 x 刻度在我调用 ay ax twinx 并在 ay 上绘图后消失了 这是导致此错误的我的代码 fig axes plt subplots