我有一个散点图,由不同的散点图组成:
import matplotlib.pyplot as plt
import numpy as np
def onpick3(event):
index = event.ind
print '--------------'
print index
artist = event.artist
print artist
fig_handle = plt.figure()
x,y = np.random.rand(10),np.random.rand(10)
x1,y1 = np.random.rand(10),np.random.rand(10)
axes_size = 0.1,0.1,0.9,0.9
ax = fig_handle.add_axes(axes_size)
p = ax.scatter (x,y, marker='*', s=60, color='r', picker=True, lw=2)
p1 = ax.scatter (x1,y1, marker='*', s=60, color='b', picker=True, lw=2)
fig_handle.canvas.mpl_connect('pick_event', onpick3)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我希望这些点是可单击的,并获取所选索引的x,y。但是,由于scatter被多次调用,因此两次获得相同的索引,因此无法x[index]在onpick3方法内部使用
是否有一种简单的方法来获得积分?
似乎event.artist还给同样PathCollection是从还给scatter(p和p1在这种情况下)。但是我找不到任何方法来提取 …
我正在尝试在matplotlib中旋转文本。不幸的是,旋转似乎是在显示坐标系中,而不是在数据坐标系中。那是:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0.15, 0.1, 0.8, 0.8])
t = np.arange(0.0, 1.0, 0.01)
line, = ax.plot(t, t, color='blue', lw=2)
ax.text (0.51,0.51,"test label", rotation=45)
plt.show()
Run Code Online (Sandbox Code Playgroud)
将给出一条在数据坐标系中为45度的线,但附带的文本在显示坐标系中为45度。我想使文本和数据即使在调整大小时也要对齐。我在这里看到了可以变换旋转的方法,但是只有在不调整图的大小的情况下,此方法才能起作用。我尝试编写ax.text (0.51,0.51,"test label", transform=ax.transData, rotation=45),但无论如何它似乎是默认的,并且对旋转没有帮助
有没有办法在数据坐标系中进行旋转?
编辑:
我有兴趣在绘制图形后能够调整其大小-这是因为我通常会先绘制一些图形,然后在保存图形之前先进行处理