我只使用Python大约一个月,如果我忽略了一些简单的解决方案,那么很抱歉。
基本上,我有一个包含4个子图的图形,左侧的2个子图显示纵向图,右侧的子图显示纵向图某些点处的散点图。您可以使用按钮在不同的纵向图点上单击散点图,并且当前所在纵向图点的刻度标签将以蓝色突出显示。
使用以下代码已经可以将某个特定的刻度标签着色:
xlabels = []
labelcolors = []
for i, item in enumerate(mr.segmentlst):
if re.search('SFX|MC|MQ|MS|MKC', item):
xlabels.append(mr.segmentlst[i])
else:
xlabels.append('')
for i, item in enumerate(mr.segmentlst):
if re.search('SFX', item):
labelcolors.append('black')
else:
labelcolors.append('gray')
labelcolors[self.ind]='blue'
[t.set_color(i) for (i,t) in zip(labelcolors, ax1.xaxis.get_ticklabels())]
[t.set_color(i) for (i,t) in zip(labelcolors, ax2.xaxis.get_ticklabels())]
它只显示特定的标签并相应地更改它们的颜色(我不知道是否有另一种解决方案,这是我能找到的唯一一种)。不用理mr.segmentlist,我目前已将绘图硬编码为使用另一种方法的属性,以便在Spyder中轻松进行测试。
我还想更改经纬度图中当前突出显示的刻度标签的网格线颜色(仅xgridlines可见),是否有类似的方法可以实现?我已经在互联网上搜索了大约2个小时的解决方案,但没有找到什么有用的东西。
我认为可以使用像
ax1.get_xgridlines()
这样的东西,但我不知道如何将其转换为有用的列表。谢谢, Tamara