plot/plt/seaborn.regplot:解决散点图点点重合的办法

在处理大量数据点的散点图时,原始的plt.scatter()函数导致数据点重叠,无法清晰展示数据分布。通过增加透明度和使用seaborn的regplot()函数,结合x轴和y轴的抖动参数,可以有效地解决这个问题。进一步地,通过循环为不同类别的数据点分配不同颜色,增强了可视化效果,使得在低准确率情况下也能识别出分类错误的点。最后调整点的大小,使得图更加清晰易读。
摘要由CSDN通过智能技术生成
# 导入模块
from matplotlib import pyplot as plt
from matplotlib import font_manager
import seaborn
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\MSYHL.TTC")

(将调用的库写在最上面)


你是否会遇到这样的情况,480个数据点,想画成散点图直观地看到数据,结果······

plt.scatter(y_predict,y_test,label='预测情况')

变成了这样子,几百个数据点变成了不到一百个数据?是隐术还是另有玄机?

哦,是他们重叠在一起了。

我先是加了透明度:

plt.scatter(y_predict,y_test,label='预测情况',alpha = 1/5)

 但是感觉还差点意思,然后我······

好吧,我直接换了这个,因为想加抖动,但是用plot好像不是很好使,网上也找不到清楚说明的,然后发现这个很不错,在原来的基础上直接加一个seaborn就可以了,直接代替上面的代码。

下面是加了x轴y轴0.2大小的抖动和0.3的透明度,可以自己调大小。下面是效果。

seaborn.regplot(y_predict,y_test, fit_reg = False,
       x_jitter = 0.2, y_jitter = 0.2, scatter_kws = {'alpha' : 1/3})

我还是不太满意,因为它颜色都一样,我做的是9个数字手写识别预测,横坐标是标签,纵坐标是预测值。可是它颜色都一样,我想看哪些值被分错了。所以我写了循环让系统自己分配颜色。

plt.figure(figsize=(10,5),dpi=80)
plt_label = -1

for i in range(1,len(y_test),48): 
    plt_label += 1
    seaborn.regplot(y_predict,y_test, fit_reg = False,
           x_jitter = 0.2, y_jitter = 0.2, scatter_kws = {'alpha' : 1/3},label = '数字'+ str(plt_label)) #label = '数字'+ str(plt_label)这个是用作图例
    plt.legend(prop=my_font,,loc='upper left')

 这个图你可能看的比较奇妙,和我所用的数据集有关,它的准确率比较低,仅有36%,是收集了我们班同学的数据集做的。如果准确率高,应该是一条明显的斜对角线!

但是这个感觉点太大了,就又改了一下:

plt.figure(figsize=(15,8),dpi=80)
plt_label = -1

for i in range(1,len(y_test),48): 
    plt_label += 1
    seaborn.regplot(y_predict,y_test, fit_reg = False,
           x_jitter = 0.2, y_jitter = 0.2, scatter_kws = {'alpha' : 1/3,'s':2},label = '数字'+ str(plt_label)) 
  #在透明度后面跟了s=2,这个是点的大小的参数,感觉可以深入研究一下这个scatter_kws。
    plt.legend(prop=my_font,,loc='upper left')

 就酱紫了~

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值