matlab scatter函数绘制实心点_Python实现彩色散点图绘制(利用色带对散点图进行颜色渲染)...

本文介绍如何使用Python的matplotlib库绘制彩色散点图,通过颜色带表示散点的密度,以解决大量样本点导致的可视化问题。文章提供了一种计算散点密度并进行归一化处理的方法,结合色带colormap实现颜色映射,并给出了完整代码示例。
摘要由CSDN通过智能技术生成
400850705c61cc03009236c5d9e6fc87.gif

接受自己的普通,然后全力以赴的出众,告诉自己要努力,但不要着急....

01

前言

    在自己的论文实验中,遇到了一个气象站实际观测数据与预测数据之间的对比,因此考虑绘制一个散点图来进行展示,但是我的实测数据与预测数据统计下来有100多万个样本点(时间分辨率比较高、统计时间较长),起初绘制散点图是这样的。。。

72b92866e492edeecc52326f055557ab.png

#!/usr/bin/env python# -*- coding: utf-8 -*-# Name   : simple_scatter.py# Author : zengsk in NanJing# Created: 2019/12/14 17:16"""Details: 不带颜色渲染的散点图绘制 (包含多个子图)"""import numpy as npimport matplotlib.pyplot as pltdef draw_scatter(x, y, marker_size=1, savefig_name=""):    # 创建画图窗口    fig = plt.figure(1, figsize=(8, 8))    # 将画图窗口分成2x2, 选择第一块区域作子图    subplot1 = fig.add_subplot(2, 2, 1)    # 画散点图    subplot1.scatter(x, y, s=marker_size, c='k', marker='.')    # 画参考线    subplot1.plot((0, 300), (0, 300), linestyle="--", linewidth=0.8, color="b")    # 调整坐标轴范围    plt.xlim((0, 300))    plt.ylim((0, 300))    # 设置坐标轴刻度    xticks = np.arange(0, 301, 50)    yticks = np.arange(0, 301, 50)    plt.xticks(xticks)    plt.yticks(yticks)    # 设置标题    subplot1.set_title('Scatter Plot')    # 设置坐标轴名称    subplot1.set_xlabel('Observation')    subplot1.set_ylabel('Estimate')    # 添加网格线    plt.grid(linestyle='--', color='grey')    # 全局修改字体    plt.rc('font', family='Times New Roman')    # save figure    fig.tight_layout()    if "" != savefig_name.strip():        plt.savefig(savefig_name, dpi=600)    plt.show()# 主模块if __name__ == "__main__":    # 加载数据    url = r"E:\Scripts\Test\scatter\data\estimate3.csv"    data = np.loadtxt(url, delimiter=',', skiprows=1)    x = data[:, 1]    y = data[:, 2]    draw_scatter(x, y, savefig_name="E:\Scripts\Test\scatter\data\scatter.jpg")

86379ec0303bbeaecb5d1cb37fbe4b48.png

     当然, 这个结果并不是我真正想要的,Pass, 太丑了!

样本点太多,一片黑色, 无法看出散点的聚集程度,如果能考虑用一个颜色带(colorbar),对图中的散点按照密集程度进行着色,那就完美了呗!当然,这个想法来自于我的师兄,我只是一个实现者....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值