加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Matplotlib:更改单个网格线的颜色

发布时间:2020-12-20 11:44:25 所属栏目:Python 来源:网络整理
导读:我现在只使用 Python大约一个月,所以我很抱歉,如果有一些简单的解决方案我忽略了. 基本上我有一个有4个子图的图,左边的2显示纵向图,右边的图显示纵向图的某些点的散点图.您可以使用按钮单击纵向图的不同点处的散点图,并且您当前所在纵向图的刻度标签将以蓝色
我现在只使用 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,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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读