python - Matplotlib:改变个别网格线的颜色

标签 python matplotlib plot gridlines

我现在只使用 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() 的东西,但我不知道如何将它转换成有用的列表。

谢谢, 塔玛拉

最佳答案

get_xgridlines() 返回 Line2D 对象的列表,因此如果您可以找到要修改的线,则可以修改它们的任何属性

x = np.random.random_sample((10,))
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(x,x)
ax.grid()
a = ax.get_xgridlines()
b = a[2]
b.set_color('red')
b.set_linewidth(3)

enter image description here

关于python - Matplotlib:改变个别网格线的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32073616/

相关文章:

python - Matplotlib 图例,跨列而不是向下添加项目

python - 如何在 matplotlib 中的子图中选取一个点并在相邻子图中突出显示它(点区域的扩展)

r - 我可以在用户定义的函数中使用 ggplot() 在单个图中绘制多个函数曲线吗?

python - 在 Pygame 中使用类

python - 有没有办法在 Sublime Text 中设置 Anaconda 自动完成功能而无需按 Tab 键?

python - 带有图像的 Numpy.putmask

linux - 在服务器上运行时在本地计算机上显示

python - 从 matplotlib : boxplot 中查找离群点

r - 如何设置使用ggplot2绘制栅格图

python - 如何保存运行 python 程序的状态以便稍后恢复?