我想使用mapplotlib绘制一个如下所示的加号:
_
_| |_
|_ _|
|_|
我一直在阅读matplotlib文档但是,坦率地说,我甚至不确定要搜索什么来解决我的问题。实际上我希望在同一个X轴上有两个点(I.E.是一条垂直线),但我似乎无法弄清楚如何做到这一点。理想情况下,我想用一组绘图点来做这个,但我知道这是不可能的。
如果我能以任何方式澄清我的问题,请告诉我。
答案 0 :(得分:1)
例如:
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> y =[10, 20, 20, 30, 30, 40, 40, 30, 30, 20, 20, 10, 10]
>>> x =[10, 10, 0, 0, 10, 10, 20, 20, 30, 30, 20, 20, 10]
>>> line, = ax.plot(x, y, 'go-')
>>> ax.grid()
>>> ax.axis('equal')
(0.0, 30.0, 10.0, 40.0)
>>> plt.show()
产地:
答案 1 :(得分:0)
如果你想做一些搜索,你应该找到一些如何创建自定义标记的链接。我想出的最好的答案是使用Path对象作为标记。因此,你可以创建一个创建所需路径的函数(我懒得写十字架,所以我采用了一个更简单的矩形):
def getCustomMarker():
verts = [(-1, -1), # left, bottom
(-1, 1), # left, top
(1, 1), # right, top
(1, -1), # right, bottom
(-1, -1)] # ignored
codes = [matplotlib.path.Path.MOVETO,
matplotlib.path.Path.LINETO,
matplotlib.path.Path.LINETO,
matplotlib.path.Path.LINETO,
matplotlib.path.Path.CLOSEPOLY]
path = matplotlib.path.Path(verts, codes)
return path
您现在可以使用所需的自定义标记绘制任何数据:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
figure = plt.figure()
axes = figure.add_subplot(1, 1, 1)
axes.plot(x, y, marker=getCustomMarker(), markerfacecolor='none', markersize=3)
plt.show()
这使您可以在任何想要它的位置绘制任何标记。