在Python'中向轴添加彩色框;s matplotlib

在Python'中向轴添加彩色框;s matplotlib,python,matplotlib,plot,axes,Python,Matplotlib,Plot,Axes,社区 假设我使用Python的matplotlib创建了散点图: plt.scatter(x, y) 假设这是数据: 现在,有没有办法在轴上添加彩色框(在给定的x值之间,例如:添加一个从x=-0.2到x=0的绿色框,添加一个…)如下: 包括文本标签(我猜是在中间范围) 老实说,我甚至不知道如何开始这项工作(除了绘制散点图) 问题 至少有人能告诉我matplotlib的一个功能(或任何其他Python包)可以做到这一点吗 非常感谢你的帮助 fig = plt.figure(figsize=(

社区

假设我使用Python的matplotlib创建了散点图:

plt.scatter(x, y)
假设这是数据:

现在,有没有办法在轴上添加彩色框(在给定的x值之间,例如:添加一个从x=-0.2到x=0的绿色框,添加一个…)如下:

包括文本标签(我猜是在中间范围)

老实说,我甚至不知道如何开始这项工作(除了绘制散点图)

问题 至少有人能告诉我matplotlib的一个功能(或任何其他Python包)可以做到这一点吗

非常感谢你的帮助

fig = plt.figure(figsize=(6,4))
plt.plot(np.arange(0,7,1),np.arange(0,7,1),linestyle='--', marker='o', color='b')
rect1 = plt.Rectangle((1.5,1.5),(0.7),(0.5), facecolor="grey",edgecolor="black",alpha=0.8)
rect2 = plt.Rectangle((2.5,2.5),(0.7),(0.5), facecolor="yellow",edgecolor="black",alpha=0.8)
rect3 = plt.Rectangle((3.5,3.5),(0.7),(0.5), facecolor="k",edgecolor="black",alpha=0.8)
plt.gca().add_patch(rect1)
plt.gca().add_patch(rect2)
plt.gca().add_patch(rect3)

plt.text(1.65,1.65,r"Grey",fontsize = 10,zorder = 5,color = 'k',fontweight = 'bold')
plt.text(2.55,2.65,r"Yellow",fontsize = 10,zorder = 5,color = 'k',fontweight = 'bold')
plt.text(3.555,3.65,r"Black",fontsize = 10,zorder = 5,color = 'white',fontweight = 'bold')  


您可能想使用matplotlib的 功能。也许是这样的

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 1, 100)
y = np.sin(2*np.pi * x)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y, 'o')
ax.set_xlim(-0.2, 1.2)
ax.set_ylim(-1.5, 1.5)

x_ticks = ax.get_xticks()
y_ticks = ax.get_yticks()
# use len(x_ticks)-1 number of colors
colors = ['b', 'g', 'r', 'c', 'm', 'y', 'orange']
for i, x_tick in enumerate(x_ticks[:-1]):
    ax.text(x_tick+0.03, y_ticks[0]-0.165, "text %i"%i,
            bbox={'fc':colors[i], 'pad':10})

这段代码返回这个值。您可以根据需要调整填充和x、y位置,以获得所需的精确外观。

您可能希望使用matplotlib 功能。也许是这样的

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 1, 100)
y = np.sin(2*np.pi * x)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y, 'o')
ax.set_xlim(-0.2, 1.2)
ax.set_ylim(-1.5, 1.5)

x_ticks = ax.get_xticks()
y_ticks = ax.get_yticks()
# use len(x_ticks)-1 number of colors
colors = ['b', 'g', 'r', 'c', 'm', 'y', 'orange']
for i, x_tick in enumerate(x_ticks[:-1]):
    ax.text(x_tick+0.03, y_ticks[0]-0.165, "text %i"%i,
            bbox={'fc':colors[i], 'pad':10})

这段代码返回这个值。您可以根据需要调整填充和x、y位置,以获得所需的精确外观。

matplotlib对轴的使用非常多样。可以添加彩色框和覆盖文本、搜索matplotlib添加框或添加文本框。这也有很好的参考:matplotlib对轴的使用非常多样化。可以添加彩色框和覆盖文本、搜索matplotlib添加框或添加文本框。这也有很好的参考:谢谢Han,但我需要轴部分中绘图区域外的文本框:)事实上,最终需要这个来做其他事情,谢谢!谢谢Han,但我需要轴部分中绘图区域外的文本框:)事实上,最终需要这个来做其他事情,谢谢!谢谢,这太完美了!谢谢,这太完美了!