此前已经发布过博客 Matlab绘制散点密度图,其主要思路是计算每个点周围一定范围内的点个数。对于数据量较小时,该博客 Matlab绘制散点密度图 中的内容都能比较好的解决小数据量的问题,用时也在可接受的范围内;但当数据量很大时,比如有十几万个点,此时的运行效率则十分低下。

这里通过将数据进行重采样,进而绘制类似于R语言的散点密度图(输入的样本数量为 459780 个),重采样后的数据量降到 4731

绘制的结果如下:

%%
% X 用户输入X
% Y 用户输入Y%%
% key parameters
% 输入数据后,由于数据量很大,因此按照一定的步长进行重采样
% 目前还没办法自适应设置步长,需要用户多次尝试
step = 5;
% 绘制散点图时,点的大小
% 目前还没办法让程序根据生成图像的大小自动调节点的大小,需要用户多次尝试
ptsize = 15; X = floor(X / step + step / 2) * step + step / 2;
Y = floor(Y / step + step / 2) * step + step / 2;%%
XY = unique([X, Y], 'rows');
Z = zeros(size(XY, 1), 1); % 点密度的颜色即根据Z值进行绘制for i = 1 : length(Z)disp([i, length(Z)]);idx = find(X == XY(i, 1) & Y == XY(i, 2));Z(i) = length(idx);
end%%
% 绘图
figure(1);gc = get(gca);
set(gcf, 'position', [50, 50, 720, 600]);
backColor = [0.9 0.9 0.9];
set(gca, 'color', backColor);set(gca, 'FontName', 'Arial', 'FontSize', 15);
xlabel('Observation', 'FontSize', 15, 'FontName', 'Arial');
ylabel('Simulation', 'FontSize', 15, 'FontName', 'Arial');
hold on;% 如果点特别集中于某一部分而看不到差异,可以将Z改成log(Z)
% 如果分布比较均匀,则直接使用Z
s = scatter(XY(:, 1), XY(:, 2), ptsize, log(Z), 'filled', 's');
colorbar;
colormap(jet);
% set(colorbar, 'YTick', 50 : 50 : 150);hold on;
plot([-10 ^ 8 10 ^ 8], [-10 ^ 8 10 ^ 8], 'k-', 'LineWidth', 1.25);maxXY = max(XY(:));
minXY = min(XY(:));
xlim([minXY - 2 * step, maxXY + 2 * step]);
ylim([minXY - 2 * step, maxXY + 2 * step]);rr = axis;
plot(rr(1:2), [rr(4), rr(4)], 'k-', [rr(2), rr(2)], rr(3:4), 'k-');
hold on;

Matlab快速绘制类似R语言中的散点密度图相关推荐

  1. 如何在R语言中建立六边形矩阵热图heatmap可视化

    原文链接:http://tecdat.cn/?p=18879 这是一个六边形热图可视化程序,主要用到的知识RColorBrewer,fields,也就是R中的可视化绘图库(点击文末"阅读原文 ...

  2. R语言plot函数散点图、密度图实战

    R语言plot函数散点图.密度图实战 目录 R语言plot函数散点图.密度图实战 #仿真数据 #散点图中添加回归线

  3. R语言中主要的颜色对照图

    R语言作图,颜色的选择是比较头疼的事情,以下向大家分享R语言中主要的几百种颜色对照图.

  4. tmap | R语言中专门绘制地图的工具包

    tmap工具包的名称是Thematic Maps的缩写,是R中专门绘制地图的工具包.该包语法与ggplot2包比较类似,都是通过符合+来进行图层叠加. 加载示例数据: library(tidyvers ...

  5. R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图

    学习笔记的主要内容是在R语言中利用ggplot2进行PCA分析和绘图,包括简单分析与操作流程,对比不同方式得到的结果差异,提供脚本代码供练习. PCA分析的原理 在处理基因差异表达数据时,有时候需要分 ...

  6. R语言使用pROC包在同一图中绘制两条ROC曲线并通过假设检验检验ROC曲线的AUC或者偏AUC的差异(输出p值)

    R语言使用pROC包在同一图中绘制两条ROC曲线并通过假设检验检验ROC曲线的AUC或者偏AUC的差异(输出p值) 目录

  7. r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf

    ​注: 本文是R语言sf包的核心开发者和维护者--来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位.功能. ...

  8. r语言中正定矩阵由于误差不正定_R语言之数据处理(一)

    在上一篇小文中,提到了关于R语言导入数据的一些方法,之后的重点就转向了数据的处理上.数据处理其实在整个数据分析项目中所占用的时间是比较多的,所以根据处理的目的不同,也有不同的处理方法.在R语言中,我通 ...

  9. 《R语言编程艺术》——1.4 R语言中一些重要的数据结构

    1.4 R语言中一些重要的数据结构 R有多种数据结构.本节将简单介绍几种常用的数据结构,使读者在深入细节之前先对R语言有个大概的认识.这样,读者至少可以开始尝试一些很有意义的例子,即使这些例子背后更多 ...

最新文章

  1. 例6.12(Java)
  2. Java并发编程之CAS
  3. torch.where用法
  4. 第一阶段SCRUM冲刺 03
  5. 072_Math对象
  6. jq实现div移入与移出以及获得与失去焦点
  7. 用70行代码实现日志分析程序​
  8. arduino 入门套件_计算机视觉入门套件
  9. 一个页面同时发起多个ajax请求,会出现阻塞情况
  10. LintCode 1683. 杀怪兽(队列)
  11. npm安装vue_vue搭建脚手架的方式
  12. matlab 信号去直流,Speex中的近端信号去直流和预加重操作
  13. Linux C++后端开发学习路线参考汇总
  14. uni-app小程序刷新当前页面的两种方法
  15. unity3d计算两点之间距离的方法
  16. php实现鼠标悬停显示下拉菜单,jquery实现鼠标滑过显示二级下拉菜单效果
  17. vb脚本实现电脑定时关机操作
  18. 如何在Android上关闭YouTube烦人的自动播放缩略图
  19. 输入今天日期输出明天日期
  20. React (三) 修改props,React父传子、子传父、this绑定

热门文章

  1. Elasticsearch配置jieba分词分析器
  2. 超频到3200最佳时序_最新出炉!2020年最佳的6款内存条:游戏和强悍的台式机DDR4内存...
  3. cinrad读取雷达基数据并画图
  4. 屏蔽广告php代码,去除土豆视频广告的PHP代码
  5. 漫谈javascript函数式编程
  6. 物联网平台通信协议之 MQTT 协议
  7. 图解跨域请求、反向代理原理,对前端更友好的反向代理服务器 - Caddy
  8. LeetCode题解(1533):找到最大整数的索引(Python)
  9. Java 骚操作花式写法了解一下?
  10. 46亿!华北水利水电大学,启用异地校区