首页 > 解决方案 > 在轴的一侧评论和放置图例,多轴的特殊情况:

问题描述

这是我的问题。我很想从其他数据中散点图,而不是在这个工作示例中,两个散点图,在同一个图上,有两个不同的轴(每个轴都针对数据进行了很大的缩放)。我几乎成功了,结果如下:

fig = plt.figure(figsize=(20, 10))
fig.tight_layout
ax = plt.axes()
ax_bis = ax.twinx()

x = np.linspace(-1,1,100)
y1 = dist1 = np.random.normal(0.5, 0.25, 100)
y2 = dist2 = np.random.normal(8, 0.1, 100)


plt.grid(True)
lns1 = ax.plot(x,y1, 'ro', label = 'dist 1' )
lns2 = ax_bis.plot(x,y2, 'yx', label = 'dist 2')


lns = lns1+lns2
labs = [l.get_label() for l in lns]
ax.legend(lns, labs, loc = "upper left")

#plt.text(50, .025, r'$\mu=100,\ \sigma=15$')
#ax_bis.xlabel('Time')

plt.suptitle('my graph')

在此处输入图像描述

我的斗争是这样的:我无法命名轴。经典方式不起作用(我将它们作为注释放在代码中),我很想在图表本身上添加一些注释(就像一个小文本说:“嘿!图表很棒”)。怎么可能做到这一点?

标签: pythonpython-3.xgraphgraphicsscatter-plot

解决方案


您非常接近设置标签并获取文本。

fig = plt.figure(figsize=(20, 10))
fig.tight_layout
ax = plt.axes()
ax_bis = ax.twinx()

x = np.linspace(-1,1,100)
y1 = dist1 = np.random.normal(0.5, 0.25, 100)
y2 = dist2 = np.random.normal(8, 0.1, 100)


plt.grid(True)
lns1 = ax.plot(x,y1, 'ro', label = 'dist 1' )
lns2 = ax_bis.plot(x,y2, 'yx', label = 'dist 2')


lns = lns1+lns2
labs = [l.get_label() for l in lns]
ax.legend(lns, labs, loc = "upper left")

# EDITS
ax.set_xlabel('Time')
ax.text(0,0.6,"Hello World") # x,y,message
#plt.text(50, .025, r'$\mu=100,\ \sigma=15$')
#ax_bis.xlabel('Time')

plt.suptitle('my graph')

注意:你的情节是

'AxesSubplot' object

并且没有属性 .xlabel 而是有 .set_xlabel

您可以使用(伪代码)设置文本

ax.text(xval,yval,message)

这是结果。 在此处输入图像描述


推荐阅读