- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想向 matplotlib 图添加第二个 x 轴,不是添加第二个图,而是添加链接到第一个轴的标签。 question中的答案不知何故无法解决第二轴范围内的问题:
以下代码将第一个 x 轴的 log10 绘制为第二个轴:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(3,figsize = [5,4])
ax1 = fig.add_subplot(111)
ax1.set_xlabel('first axis')
ax1.set_xlim([0, 120])
ax1.grid(True)
ax2 = ax1.twiny()
ax2.set_xlim(ax1.get_xlim())
# or alternatively :
# ax2.set_xbound(ax1.get_xbound())
second_ticks = np.array([1.,10.,100.])
ax2.set_xticks(second_ticks)
ax2.set_xticklabels(np.log10(second_ticks))
ax2.set_xlabel('second axis')
plt.show()
有效!现在让我们将 ax1.set_xlim([0, 120])
更改为 ax1.set_xlim([20, 120])
现在失败了。我尝试使用 ax2.set_xbound(ax1.get_xbound())
没有任何区别。 ax2.set_xticks
无法根据正确的 x 限制放置刻度。
编辑:
我试图将 ax1.set_xlim([20, 120])
放在 ax2.set_xlim(ax1.get_xlim())
之后的任何位置,它再次给出了错误的信息:
实际上我不明白 ax2.set_xticks()
的含义,它设置了显示标签的位置 否?
编辑:
好的,我们知道了:x_lim 定义 ax2.set_xlim(ax1.get_xlim())
必须在 tick 和 ticklabel 定义之后。
import numpy as np
import matplotlib.pyplot as plt
plt.close('all')
fig = plt.figure(1,figsize = [5,4])
ax1 = fig.add_subplot(111)
ax1.set_xlabel('first axis')
ax1.grid(True)
ax1.set_xlim([10, 120])
ax2 = ax1.twiny()
second_ticks = np.array([1.,10.,100.])
ax2.set_xticks(second_ticks)
ax2.set_xticklabels(np.log10(second_ticks))
ax2.set_xlabel('second axis')
ax2.set_xlim(ax1.get_xlim())
fig.tight_layout()
plt.show()
谢谢!
问候,
最佳答案
我相信您会得到意想不到的结果,因为您强制第二个轴上的 x-ticks 和 x-tick-labels 是预定义的。无论您在第二个轴上放置什么作为 x 刻度,它们将始终被标记为:ax2.set_xticklabels(np.log10(second_ticks))
。相反,在第一个轴上更新 x-tick-labels 后,更新第二个轴上的 x-tick-labels
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(3,figsize = [5,4])
ax1 = fig.add_subplot(111)
ax1.set_xlabel('first axis')
x = np.linspace(0,100,num=200)
ax1.set_xlim([0, 120])
ax1.grid(True)
ax2 = ax1.twiny()
ax2.set_xlim(ax1.get_xlim())
# or alternatively :
# ax2.set_xbound(ax1.get_xbound())
# second_ticks = np.array([1.,10.,100.])
# ax2.set_xticks(second_ticks)
ax2.set_xlabel('second axis')
# Set the xlim on axis 1, then update the x-tick-labels on axis 2
ax1.set_xlim([20, 100])
ax2.set_xticklabels(np.log10(ax1.get_xticks()))
plt.show()
这是否解决了您的问题? (ps.你的代码有几个错别字……无法运行……)
关于python - 第二个 matplotlib x 轴与第一个 : wrong tick position 相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38999021/
我有一个 Visual Studio 2008 解决方案,当我构建时,它返回以下错误: Ticks must be between DateTime.MinValue.Ticks and DateTi
我正在 Xv6 上做操作系统类(class)的作业.我需要为其创建时间、终止时间、休眠时间等实现一个进程的数据状态结构... 到目前为止,我决定直接使用 ticks 变量而不使用 tickslock,
我可以删除刻度标签: ax.axes.get_yaxis().set_visible(False) 但这也消除了滴答声。我想保留蜱虫。 最佳答案 只需使用一个NullFormatter ax = pl
我正在处理刻度数据,并希望将我的 xts 不规则间隔系列聚合成一个 1 秒的同质系列。因此,我使用 xts 包函数 to.period : price_1m <-to.period(price,per
在 C# System.Windows.Forms.Timer 中,如果计时器节拍内的代码计算时间比节拍长度长,会发生什么情况? 例如,在下面的代码中,如果更新标签的时间比滴答的时间间隔(1 秒)长,
如何通过逐笔报价数据对我的逐笔报价进行重新采样以获取 Candlesticks OHLC 数据。 这是我的数据在 pandas DataFrame 中的样子。 Timestamp
这是对 this 的跟进问题,作者想要不同的刻度和刻度标签颜色。我想将这些设置保存为 Matplotlib 样式。但在 Matplotlib 样式中,我只能设置刻度颜色(xtick 设置见下文),这会
我想在日期时间 X 轴上显示每月刻度。我使用下面的代码实现了这一点。 DateAxis dateAxis = (DateAxis)chart.getXYPlot().getDomainAxis();
我是业余时间的 Java 开发者,我只是想知道 level.tick() 和 Level.tick(level) ('Level' 是类的名称,'level' 是该类的对象) 我知道,由于 java
我正在实现时间轴功能并使用 d3.time.scale D3 中的对象来制作一个轴。这是代码: var t = 1066555; var xd = [new Date(t-10000), new Da
我有一个具有旋转动画的自定义 View (PieView)。现在我想与旋转速度同步播放滴答滴答滴答...声音(即当旋转速度快时,滴答声应该快,当旋转慢时,滴答声应该快)滴答滴答应该很慢)。为此,我首先
我正在制作一个分层图表,其中有条形图和规则线。我遇到的问题是,在 x 轴上,刻度线和刻度标签只出现在条形图下方,不会跨越整个轴,因此在规则线下方没有刻度线和标签位于。这是我所看到的示例 ( link
我有一个histogram with centered bin-ticks 。 如图所示,每个 bin-tick 的编号标签彼此非常接近,以至于数字不像我希望的那样清晰。我想在我的图中保留居中的垃圾箱
我正在制作玩具熊的五夜后宫的“粉丝游戏”。在我开始收到此错误之前,我的代码工作正常: File "C:\Users\Admin\Desktop\Python\Five Nights\Five Nigh
这很简单,但我不明白...... 我正在尝试设定一个时间。每秒滴答一次...但它每 2 秒滴答一次?!? package main import ( "fmt" "time" ) fu
我正在以日期时间刻度格式存储 Azure 表存储行键 String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks)
What is the correct way to multiply and divide ints in C to avoid overflow? I want to determine h
我在 javascript 和 node.js 事件循环中看到了“tick”的不同定义。 有人说这是贯穿所有阶段的第 1 次迭代事件循环。 有人说阶段和阶段之间的过渡另一个是蜱虫。 有人说它是一个事件
我试图让我的模型对时钟滴答作响,以便做一些动画,例如 elm 架构教程的示例 8(旋转立方体)。 https://github.com/evancz/elm-architecture-tutorial
我创建了一个应用程序,它播放小轨道的播放列表,一切正常,直到 Windows Phone 8.1 更新 问题是 -> 轨道结束时有奇怪的滴答声” 所以我尝试在 xbox 音乐播放器中播放轨道它也有相同
我是一名优秀的程序员,十分优秀!