numpy 将x轴移动到数据=0,但将刻度标签保留在底部

icnyk63a  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(71)

我想移动x轴的线(以及所有相应的刻度)x=0。但是刻度标签应该位于图的底部,以防止图中的混乱。
在中心显示轴,但将标签保留在左侧

from matplotlib import pyplot as plt
import matplotlib.transforms as transforms
import numpy as np

# Generate some sample data
x = np.linspace(-10, 10, 100)
y = np.sin(x)

# Create the plot
fig, ax = plt.subplots()
# Plot the data
ax.plot(x, y)
# Move the x-axis to the bottom
ax.spines['bottom'].set_position(('data', 0))
trans = transforms.blended_transform_factory(ax.transAxes,ax.transData)
# plt.setp(ax.get_xticklabels(), 'transform', trans)  # this returns a plot with zero height
plt.show()

字符串
我想移动轴本身,包括刻度。这使得使用网格和对数刻度的刻度更容易。因此,带有水平线的解决方案如ax.axhline(y=0)不是一个好的解决方案,也不是我想要的。

nhhxz33t

nhhxz33t1#

IIUC您希望在xaxis上应用Transformer,如下所示:

trans = transforms.blended_transform_factory(ax.transData,ax.transAxes)
plt.setp(ax.get_xticklabels(), 'transform', trans)
plt.show()

字符串
输出量:


的数据

相关问题