为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 matplotlib 和 seaborn 在绘图值上显示轴刻度标签?

如何使用 matplotlib 和 seaborn 在绘图值上显示轴刻度标签?

心有法竹 2022-01-18 16:11:59
我正在使用 matplotlib 和 seaborn 来散点图包含在两个数组 x 和 y 中的一些数据(二维图)。这里的问题是在数据上显示两个轴标签时,因为绘制的数据与值重叠,因此看不见。我尝试了不同的可能性,例如在绘图完成后重置标签并稍后设置它们,或者使用注释标记。无论如何,这些选项中的任何一个都对我有用......我用来生成这个散点图的代码是:sns.set_style("whitegrid")ax = sns.scatterplot(x=x, y=y, s=125)ax.set_xlim(-20, 20)ax.set_ylim(-20, 20)ax.spines['left'].set_position('zero')ax.spines['left'].set_color('black')ax.spines['right'].set_color('none')ax.yaxis.tick_left()ax.spines['bottom'].set_position('zero')ax.spines['bottom'].set_color('black')ax.spines['top'].set_color('none')ax.xaxis.tick_bottom()values = ax.get_xticks()ax.set_xticklabels(["{0:.0%}".format(x/100) for x in values])values = ax.get_yticks()ax.set_yticklabels(["{0:.0%}".format(y/100) for y in values])ax.tick_params(axis='both', which='major', labelsize=15)ax.grid(True)生成的图如下: 但所需的输出应该是这样的:
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

您需要两件事:zorder以及刻度标签的bold权重。散点的zorder数量需要低于刻度标签的数量,以便后者出现在顶部。'fontweight': 'bold'是有粗体刻度标签。


轴似乎偏离了 0,但那是因为您没有提供任何数据。所以我必须选择一些随机数据


# import commands here


x = np.random.randint(-100, 100, 10000)

y = np.random.randint(-100, 100, 10000)

ax = sns.scatterplot(x=x, y=y, s=125, zorder=-1)


# Rest of the code


values = ax.get_xticks()

ax.set_xticklabels(["{0:.0%}".format(x/100) for x in values], fontdict={'fontweight': 'bold'})


values = ax.get_yticks()

ax.set_yticklabels(["{0:.0%}".format(y/100) for y in values], fontdict={'fontweight': 'bold'})


ax.tick_params(axis='both', which='major', labelsize=15, zorder=1)

ax.grid(True)

//img1.sycdn.imooc.com//61e676850001f64a07720498.jpg

查看完整回答
反对 回复 2022-01-18
  • 1 回答
  • 0 关注
  • 316 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号