0
这是我的想法的例证。在一个图中绘制三个属性。如何设置一半长度的轴
我想设置我的轴系统,如下面的样式。顶轴的范围从0到1;底轴范围从-1〜1。
有什么办法可以达到这个目的吗?
+------+ ---+
| |
| | --->
| |
+------+ +-------
这是我的想法的例证。在一个图中绘制三个属性。如何设置一半长度的轴
我想设置我的轴系统,如下面的样式。顶轴的范围从0到1;底轴范围从-1〜1。
有什么办法可以达到这个目的吗?
+------+ ---+
| |
| | --->
| |
+------+ +-------
可以将两个轴放在另一个的顶部,一个是另一个的一半。然后设置轴不可见并调整轴限制,生成与问题中类似的图。
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(6,3))
ax1 = fig.add_axes([0.1,0.1, 0.35,0.8])
ax2 = fig.add_axes([0.55,0.1, 0.35,0.8])
ax3 = fig.add_axes([0.55+0.175,0.1, 0.175,0.8], facecolor=(0,0,0,0))
ax3.xaxis.tick_top()
ax2.set_xlim([-1,1])
ax3.set_xlim([0,1])
ax2.spines['right'].set_color('none')
ax3.spines['right'].set_color('none')
ax2.spines['left'].set_color('none')
ax3.spines['left'].set_color('none')
ax2.spines['top'].set_color('none')
ax3.spines['bottom'].set_color('none')
ax2.set_yticks([])
ax3.set_yticks([])
x = np.linspace(-1,1,201)
f = lambda x,b: np.sin(x/b)
f2 = lambda x,a,b: ((x/b-a)*np.exp(-(x/b-a)**2))**2
ax1.plot(x, f(x,0.5)*f2(x,1,0.5), color="C3")
ax2.plot(x,f2(x, -1.8,0.5), color="C1")
ax3.plot(x,f(x,0.1), color="C2")
ax3.set_ylim([-3,1.5])
plt.show()
我觉得ASCII图像过于简单,传达必要的信息。你可以添加更多信息还是更好地展示你想要实现的目标?另外,为了提供帮助,最好知道你在哪里遇到问题。 – ImportanceOfBeingErnest