python函数之xticks实现x轴0到1之间刻度的准确的seaborn画图

最近本人在绘制相关数据的序列图的时候,遇到了一个seaborn画图x轴的显示问题,具体见下面分析:

有一个这样的dataframe类型数据df: 

    max_sumI    mobile_p
0   0.172865      0.00
1   0.210638      0.05
2   0.235263      0.10
3   0.252968      0.15
4   0.266577      0.20
5   0.276553      0.25
6   0.285253      0.30
7   0.291333      0.35
8   0.297852      0.40
9   0.302255      0.45
10  0.305111      0.50
11  0.309387      0.55
12  0.312710      0.60
13  0.315155      0.65
14  0.316925      0.70
15  0.318176      0.75
16  0.319028      0.80
17  0.320157      0.85
18  0.321648      0.90
19  0.322782      0.95
20  0.323612      1.00

想使得max_sumI为y轴,mobile_p为x轴,调用以下代码:

# 绘制图表
plt.figure(figsize=(8, 6))
sns.pointplot(data=df, x = 'mobile_p', y= 'max_sumI', label='patch_size = 10', markers='o', color='blue')

sns.set_theme(style='ticks')

plt.xlabel('mobile_probability')
plt.ylabel('MAX rho_I')
plt.title('Maximum infection density under different mobility probabilities')
# 显示图例
plt.legend()

plt.show()

生成结果图如下:

现在x轴太拥挤了,我想让范围(0,1)之间刻度为0.1,即0.0,0.1,....0.9,1.0,根据网上的说法应该设置代码——

plt.xticks(np.arange(0, 1.1, 0.1))

但事实上适用seaborn包画图sns.pointplot,也就是上面的画图代码会出现下面这种情况,x轴全都挤在一起了——

这时需要调整代码刻度为:

plt.xticks(np.arange(0, 21, 2))

也就是x轴20个数范围0到20,每隔2就显示一个刻度值,竟然得到了我想要的结果:

值得注意的是,这个问题只在seaborn画图时遇到了,如果用plt.plot画图则没有这个问题,但是matplotlib画图我感觉不怎么好看,一直用的seaborn。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值