问题标签 [twinx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
56 浏览

python - 如何在不破坏其实际方向的情况下在同一图中绘制熊猫数据框?

我试图比较Naive 矩阵乘法Strassen 的运行时间。为此,我记录了矩阵不同维度的运行时间。然后我试图将结果绘制在同一张图中进行比较。

但问题是绘图没有显示正确的结果。

  1. 这是数据... 2 3142 3 3531 4 4756 5 5781 6 8107

最左列表示n,维度和最右列表示执行时间。

以上数据是针对Naive 方法的, Strassen的数据也是这种模式。

我将此数据插入到pandas 数据框。绘制数据后,图像如下所示: 在此处输入图像描述

这里蓝色代表Naive,绿色代表Strassen's 这当然不是真的,因为Naive不可能是恒定的。但是我的代码是正确的。所以我决定单独绘制它们,结果如下:

幼稚的 幼稚的

施特拉森 在此处输入图像描述

如您所见,这可能是因为 Y 轴的缩放比例不一样?这是原因吗?

我正在实现的绘图代码是:

我试图解决什么问题?

但是没有运气!!!

如何在不改变实际方向的情况下将它们绘制在同一个图中?

0 投票
0 回答
2312 浏览

python - x 轴上缺少线图刻度

我试图在一张图中绘制两个数据框,x 轴上有 30 天的数据。然而,大多数 xaxis 刻度都没有显示并且它们的间距是关闭的。如何显示完整的 30 个刻度?

这是代码:

另外:如何将 y 轴的格式更改为每千位有一个逗号?以及如何防止 xasix 标签与其下方的图形重叠(使用“紧密”间距不起作用)?

在此处输入图像描述

0 投票
1 回答
1679 浏览

python-3.x - matplotlib:使用多个 twinx 子图控制 y 轴标签的位置

我编写了一个基于 matplotlib 的 Python 脚本,它根据公共时间线生成曲线。在我的图中,共享相同 x 轴的曲线数量可以从 1 到 6 不等,具体取决于用户选项。绘制的每个数据都使用不同的 y 比例,并且需要不同的轴进行绘制。因此,我可能需要在绘图右侧最多绘制 5 个不同的 Y 轴。我在其他一些帖子中找到了在添加新轴时偏移轴位置的方法,但我仍然有两个问题:

  1. 如何控制多个轴的位置,使刻度标签不重叠?
  2. 如何控制每个轴标签的位置,使其垂直放置在每个轴的底部?以及如何在调整显示窗口大小、放大等时保持这种对齐方式......我可能需要编写一些代码,首先查询轴的位置,然后是一个指令,将标签相对于该位置放置,但是我真的不知道该怎么做。

我不能分享我的整个代码,因为它太大了,但是我从这个例子中的代码派生了它。我通过添加一个额外的绘图和一个额外的轴来修改该示例,以更接近地匹配我的脚本中打算执行的操作。

当我运行它时,我得到以下图: 上面脚本的输出

在这张图片中,上面的问题 2 意味着我希望将 y 轴标签“温度”、“速度”、“加速度”直接绘制在每个相应轴的下方。

提前感谢您的帮助。

问候,

L.

0 投票
2 回答
248 浏览

matplotlib - matplotlib:具有超过 4 个 twinx 轴的紧密布局具有额外的填充

我正在运行一个脚本来绘制一组最多 6 条曲线共享一个公共时间线。我最多使用 twinx() 5 次,并且在图的右侧最多使用 4 个分离轴。脚本(如下所示)源自此示例。但是,如果我有多个额外轴,则该示例中显示的绘制额外轴的方法不起作用。为了绘制额外的轴,我必须使用 plt.tight_layout()。但是当我这样做时,我得到了过多的填充,主要是在绘图的右侧,这大大降低了显示布局良好的曲线的能力,即使在扩展显示窗口时也是如此,如下图所示:脚本的结果 不使用tight_layout 时我没有得到额外的填充,但是我没有看到额外的轴。我已经尝试了几种基于引用示例中的代码修复额外轴显示的方法,我的脚本中的一些注释掉的代码证明了这一点,但无济于事。

我如何摆脱这个额外的填充并同时看到我的额外轴?

脚本:

0 投票
1 回答
62 浏览

python - 绘制两个图。一个有两个系列(和两个秤),另一个有两个系列在相同的秤上

我正在绘制一些数据。一个地块在另一个地块之下。顶部图有两个系列,它们共享 x 轴,但 y 轴上的比例不同。底部图有两个系列,具有相同的 x 和 y 轴刻度。

这是我希望制作时的图像:

在此处输入图像描述

最上面的情节是我希望它看起来的样子。然而,我正在努力让数据绘制在我的第二个图上。我的代码如下所示:

我得到的一个错误是:

顶部图的数据来自数据框。底部的两个系列具有相同的 x 和 y 比例,其中一个日期框如下所示:

当我尝试自己绘制下图时,它的图形如下所示: 在此处输入图像描述

0 投票
2 回答
1402 浏览

python - 在新版本的 matplotlib 中使用 twinx 时定义纵横比

当前版本的 matplotlib 不再允许,我应该如何做与答案box-forced相同的事情?

我正在使用 matplotlib 3.1.0。在我用函数在同一个图上绘制另一组数据后twinx(),我想将实际绘图区域的纵横比更改为 1。

通常我这样做,它适用于非双轴

对于 twinx 轴,上面的代码不起作用,但也不会引发任何错误。
然后我在这里找到了答案

该代码基本上使用相同的方法将纵横比设置为1,只是带有box-forced选项。

我的python中的这段代码不起作用,引发

如果我将其更改为'box',它会给

我不确定从何时box-forced删除。现在我们应该如何以“盒子”的方式设置纵横比?

谢谢!

供参考:matplotlib.axes.Axes.set_adjustable

0 投票
1 回答
1652 浏览

matplotlib - Matplotlib:箱线图和条形图在使用 twinx 覆盖时发生偏移

当我创建一个条形图并使用双 x 覆盖条形图时,与条形相比,这些框向右移动了一个。

之前已发现此问题(Python pandas plotting shift x-axis if twinx two y-axes),但该解决方案似乎不再有效。(我正在使用 Matplotlib 3.1.0)

有问题的图表

输出显示与条相比向右移动了一个框。上一篇文章的受访者正确地指出,柱的刻度位置是从零开始的,而盒子的刻度位置是从一开始的,这导致了这种转变。但是,plt.bar()响应者用来修复它的方法现在会引发错误,因为 x 参数已成为强制性的。如果提供了 x 参数,它仍然会抛出错误,因为不再有参数“left”。

此外,我更喜欢使用面向对象的方法参考轴进行修复,因为我想将图表放入交互式 ipywidget 中。

这是理想的图表:

理想图表

非常感谢。

0 投票
2 回答
803 浏览

python - Matplotlib 辅助/双轴 - 用圆圈和箭头标记 - 用于黑白 (bw) 发布

通常两个 y 轴用不同的颜色分开,如下例所示。

对于出版物,通常需要保持可区分性,即使它是黑白印刷的。

这通常是通过围绕一条线绘制圆圈来完成的,这些圆圈带有一个指向相应轴方向的箭头。

如何使用 matplotlib 实现这一点?或者有没有更好的方法来实现没有这些圆圈的黑白可读性?

来自matplotlib.org的代码:

0 投票
0 回答
21 浏览

python - 使用 matplotlib 制作好的图表时遇到问题,特别是使用 twinx()

我无法使用 matplotlib 使我的图表看起来正确/体面。线条不切换颜色,轴不显示,为了防止图形与标签重叠,我必须使图形非常大。示例图 代码在一个循环中,但这是与绘图相关的重要内容。总结:

  • 线条只停留一种颜色
  • 图表必须非常大,否则图表和标签将全部重叠
  • 缩放不断关闭
  • 有些线条根本没有出现
  • 标签正在消失

'''

'''

0 投票
1 回答
272 浏览

python - set_markersize 不适用于右侧轴

我在搞乱一些情节风格并产生了好奇心。我有一个情节,twinx()可以在右侧和左侧产生刻度。我想错开一些刻度,有些比其他的更远。

我可以向任何轴上的任何刻度添加填充并通过 推出文本ax.yaxis.get_major_ticks()[1].set_pad(),但是当我尝试通过 延长刻度时ax.yaxis.get_major_ticks()[1].tick1line.set_markersize(),它适用于除右侧之外的所有轴。有什么见解吗?

请看下面的代码。我试过调高轴(ax1,ax2)和索引。