我搜索了几年(小时,就像年龄)找到一个非常讨厌(看似基本)问题的答案,因为我找不到一个非常适合答案的问题,我发布一个问题并回答它,希望它我将花费大量时间用于我的noobie绘图技巧.
如果你想使用python matplotlib标记你的绘图点
from matplotlib import pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
A = anyarray
B = anyotherarray
plt.plot(A,B)
for i,j in zip(A,B):
ax.annotate('%s)' %j, xy=(i,j), xytext=(30,0), textcoords='offset points')
ax.annotate('(%s,' %i, xy=(i,j))
plt.grid()
plt.show()
Run Code Online (Sandbox Code Playgroud)
我知道xytext =(30,0)与textcoords一起使用,你使用那些30,0值来定位数据标签点,所以它在0 y轴上,30在x轴上超过它自己的小区域.
您需要绘制i和j的两条线,否则您只绘制x或y数据标签.
你得到这样的东西(仅注意标签):

它不理想,仍然有一些重叠 - 但它比我所拥有的更好.
scipy.ndimage.imread刚刚在 scipy 中被弃用,所以我直接将代码切换为使用 pyplot - 但结果不一样。我正在为 keras 内置的学习算法导入图像 - 我认为这将是一个 1 对 1 的更改 - 但事实并非如此 - 我训练得很好,切换后我的系统没有训练。有没有一个蟒蛇大师可以解释有什么区别?
Scipy 返回:
img_array : ndarray 不同的色带/通道存储在第三维中,例如灰度图像是 MxN,RGB 图像 MxNx3 和 RGBA 图像 MxNx4。 scipy 文档
Matplotlib 返回:
返回值是一个 numpy.array。对于灰度图像,返回数组为 MxN。对于 RGB 图像,返回值为 MxNx3。对于 RGBA 图像,返回值为 MxNx4。 matplotlib 文档
MWE:
from scipy import ndimage
import_image = (ndimage.imread("img.png").astype(float) -
255.0 / 2) / 255.0
print import_image[0]
import matplotlib.pyplot as plt
import_image = (plt.imread("img.png").astype(float) -
255.0 / 2) / 255.0
print import_image[0]
Run Code Online (Sandbox Code Playgroud)