当Matplotlib绘制几个Y轴,有没有指定如何对齐原点的右轴的(和/或一些ytick标签)与左轴的特定值的方式?
这是我的问题:我想绘制两组数据以及它们的区别(基本上,我试图重现这种图形).
我可以重现它,但我必须手动调整右轴的ylim,以便原点与我想要的左轴对齐.
我在下面简要介绍了我使用的代码的简化版本.如您所见,我必须手动调整右轴的比例以对齐右轴的原点以及方形.
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
grp1 = np.array([1.202, 1.477, 1.223, 1.284, 1.701, 1.724, 1.099,
1.242, 1.099, 1.217, 1.291, 1.305, 1.333, 1.246])
grp2 = np.array([1.802, 2.399, 2.559, 2.286, 2.460, 2.511, 2.296,
1.975])
fig = plt.figure(figsize=(6, 6))
ax = fig.add_axes([0.17, 0.13, 0.6, 0.7])
# remove top and right spines and turn ticks off if no spine
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_color('none')
ax.xaxis.set_ticks_position('none')
ax.yaxis.set_ticks_position('left')
# postition of tick out
ax.tick_params(axis='both', direction='out', width=3, …Run Code Online (Sandbox Code Playgroud) 使用花式索引具有该阵列的数组和掩码,很容易仅选择与掩码对应的数组的数据.
import numpy as np
a = np.arange(20).reshape(4, 5)
mask = [0, 2]
data = a[:, mask]
Run Code Online (Sandbox Code Playgroud)
但是有没有快速的方法来选择不属于掩码的阵列的所有数据(即掩码是我们要拒绝的数据)?我试图找到一个通过中间布尔数组的通用解决方案,但我确信有一些东西真的很容易.
mask2 = np.ones(a.shape)==1
mask2[:, mask]=False
data = a[mask2].reshape(a.shape[0], a.shape[1]-size(mask))
Run Code Online (Sandbox Code Playgroud)
谢谢