我正在尝试使用多种颜色突出显示x轴上的区域。我已经设法通过沿x轴划分区域来找到解决方案,如下图所示:
但是,我想要一个解决方案,其中切片发生在y轴上。以图中的6362为例。有没有办法创建类似虚线的东西,其中每一个破折号(或其他任何名称)是紫色和红色?
修改 这是横向突出显示每个子部分的相关代码
t'...'
答案 0 :(得分:2)
您可以使用ymin
和ymax
选项axvspan
来创建每个“破折号”。通过循环轴间隔0-1
,您可以构建所有破折号。
这是一个快速的功能,我把它放在一起使它有点自动化。使用所需选项调用vspandash
,以破折号填充该区域。
import matplotlib.pyplot as plt
import numpy as np
fig,ax = plt.subplots(1)
x=y=np.arange(11)
ax.plot(x,y,'go-')
def vspandash(thisax,xmark,xwidth=0.6,ndash=10,colour1='r',colour2='m'):
interval = 1./ndash
hxwidth = xwidth/2.
for j in np.arange(0,1,interval*2):
thisax.axvspan(
xmin=xmark-hxwidth,xmax=xmark+hxwidth,
ymin=j,ymax=j+interval,
facecolor=colour1,alpha=0.25,edgecolor='None'
)
thisax.axvspan(
xmin=xmark-hxwidth,xmax=xmark+hxwidth,
ymin=j+interval,ymax=j+interval*2.,
facecolor=colour2,alpha=0.25,edgecolor='None'
)
# Lets explore the different options
vspandash(ax,2) # Default width, number of dashes, and colours
vspandash(ax,4,ndash=20) # Increase number of dashes
vspandash(ax,6,xwidth=0.3) # Change width of shaded region
vspandash(ax,8,colour1='b',colour2='g') # Change colours of dashes
plt.show()