You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于sns.scatterplot()步长参数及y轴刻度异常的技术咨询

1. sns.scatterplot()是否存在步长参数?

  • sns.scatterplot()本身没有专门的步长参数。它是绘制散点图的函数,会直接展示数据集中所有对应的数据点,不需要步长来控制采样逻辑。
  • 如果要控制坐标轴刻度的步长,得借助matplotlib的相关工具(比如ticker.MultipleLocator);如果想要减少显示的散点数量(相当于按步长筛选数据),需要先对原始数据集做采样处理。

2. 解决y轴刻度重叠及轴范围设置问题

你用plt.ylim(0,700000,100000)无效的原因是:plt.ylim()只接受前两个参数作为轴的上下限,第三个参数不会被识别。要解决刻度重叠问题,需要单独设置y轴刻度的步长,结合你已经导入的ticker模块,有两种常用方法:

方法一:用ticker.MultipleLocator指定刻度步长

修改后的代码如下:

#Scatter plot to find relationship between price and city mileage
from matplotlib import ticker
plt.figure(figsize=(15,12))
sns.scatterplot(data = df, x = 'city_mileage', y = 'ex_showroom_price', hue = 'body_type', palette='viridis', s = 100)
plt.title("Relation between price and city mileage")
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
plt.xlim(0,40)
plt.ylim(0,700000)  # 仅设置y轴上下限
# 设置y轴主刻度步长为100000
plt.gca().yaxis.set_major_locator(ticker.MultipleLocator(100000))
plt.xlabel( 'city_mileage')
plt.ylabel('ex_showroom_price')
plt.show()

方法二:手动指定y轴刻度值

直接列出需要显示的刻度点,避免自动生成的刻度重叠:

#Scatter plot to find relationship between price and city mileage
from matplotlib import ticker
plt.figure(figsize=(15,12))
sns.scatterplot(data = df, x = 'city_mileage', y = 'ex_showroom_price', hue = 'body_type', palette='viridis', s = 100)
plt.title("Relation between price and city mileage")
plt.xticks(fontsize=13)
# 手动设置y轴刻度,步长为100000
plt.yticks(ticks=[0,100000,200000,300000,400000,500000,600000,700000], fontsize=13)
plt.xlim(0,40)
plt.ylim(0,700000)
plt.xlabel( 'city_mileage')
plt.ylabel('ex_showroom_price')
plt.show()

如果刻度文字还是拥挤,还可以尝试缩小y轴刻度的字体大小,或者旋转刻度文字(比如plt.yticks(rotation=45, fontsize=11))。

内容的提问来源于stack exchange,提问作者Perfect Paws

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 10:35:17