Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在matplotlib图形中的特定区域上绘制矩形_Python_Matplotlib - Fatal编程技术网

Python 如何在matplotlib图形中的特定区域上绘制矩形

Python 如何在matplotlib图形中的特定区域上绘制矩形,python,matplotlib,Python,Matplotlib,我有一个用matplotlib绘制的图表,它是根据一些数据计算出来的。我想在这个图的全局最大值周围画一个矩形区域。我尝试了plt.axhspan,但是调用plt.show()时,矩形似乎没有出现 那么,如何在matplotlib图上绘制矩形区域呢?谢谢 最可能的原因是在调用axhspan时使用了x参数的数据单元。来自(我的重点): y坐标以数据单位表示,x坐标以轴表示(相对0-1) 单位 所以任何从0向左或从1向右延伸的矩形都只是从图中画出来的 一个简单的替代方法可能是向轴添加一个(例如,通过和

我有一个用matplotlib绘制的图表,它是根据一些数据计算出来的。我想在这个图的全局最大值周围画一个矩形区域。我尝试了
plt.axhspan,
但是调用
plt.show()时,矩形似乎没有出现


那么,如何在matplotlib图上绘制矩形区域呢?谢谢

最可能的原因是在调用axhspan时使用了x参数的数据单元。来自(我的重点):

y坐标以数据单位表示,x坐标以轴表示(相对0-1) 单位

所以任何从0向左或从1向右延伸的矩形都只是从图中画出来的

一个简单的替代方法可能是向轴添加一个(例如,通过和)<代码>矩形
对两个维度使用数据单位。下面将添加一个以(2,3)为中心的宽度和高度为1的灰色矩形:


下面的示例演示如何在散点图上绘制矩形边框:

导入matplotlib.pyplot作为plt
将matplotlib.patches导入为修补程序
将numpy作为np导入
数据集=np.array([
[.9, .9], [.85, 2.1], [1.2, 1.], [2.1, .95], [3., 1.1],
[3.9, .7], [4., 1.4], [4.2, 1.8], [2., 2.3], [3., 2.3],
[1.5, 1.8], [2., 1.5], [2.2, 2.], [2.6, 1.7], [2.7, 1.85]
])
categories=np.array([0,0,0,0,0,0,0,0,0,0,1,1,1,1])
颜色1=(0.69411766529083252,0.3490196168422699,0.15686275064945221,1.0)
颜色2=(0.65098041296005249,0.80784314870834351,0.89019608497619629,1.0)
colormap=np.array([color1,color2])
图=plt.图()
ax=图添加_子批次(111)
散开(
x=[数据集[:,0]],
y=[数据集[:,1]],
c=彩色地图[类别],
marker='o',
α=0.9
)
保证金=.1
最小值f0,最大值f0=最小值(数据集[10:,0])-裕度,最大值(数据集[10:,0])+裕度
最小值f1,最大值f1=最小值(数据集[10:,1])-边距,最大值(数据集[10:,1])+边距
宽度=最大值f0-最小值f0
高度=最大值f1-最小值f1
ax.add_补丁(
补丁。矩形(
xy=(最小值f0,最小值f1),#原点。
宽度=宽度,
高度=高度,
线宽=1,
颜色='红色',
填充=假
)
)
plt.show()
输出:

from matplotlib.patches import Rectangle
someX, someY = 2, 3
currentAxis = plt.gca()
currentAxis.add_patch(Rectangle((someX - .5, someY - .5), 1, 1, facecolor="grey"))