QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3400|回复: 0
打印 上一主题 下一主题

R语言绘制二维密度图

[复制链接]
字体大小: 正常 放大

1178

主题

15

听众

1万

积分

  • TA的每日心情
    开心
    2023-7-31 10:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-29 10:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    R语言绘制二维密度图二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示。二维密度图有几种类型,以下主要展示二维直方图和Hexbin图的绘图代码。
    / Z; A( j  X/ ]" M' p4 U3 T* S6 z1 f+ p
    R语言|绘制二维直方图$ V1 b1 |4 Y* ^; N( D
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。& ]! y6 N' c% U/ L' K* L5 v7 ^

    " ]5 n4 r2 m  D9 G- I% G1.先绘制基础的散点图;9 x0 t7 {9 D0 n4 _& }
    ##二维直方图
    / k$ m& l1 x; f* n' u2 `% ?# Library
    # Y1 _" Y9 S' h. |3 z! o. O) v9 J2 glibrary(tidyverse)2 v# _5 t" v1 ~9 M
    library(ggplot2)
    % o3 x) F5 l6 s; n0 G  w
    & d3 i9 [6 G0 L! B6 M8 F# 读取数据
    4 A: O; [, C; U/ W7 N/ V+ w8 ~a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )
    / ]. d2 {& e1 e+ |* C2 Yb <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )7 Z4 [/ ^0 E1 M. }  J) D
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    + Q4 B# A& A- Cdata <- rbind(a,b,c)
    % G* d, q6 a6 m, l! S2 L4 ?- i# f" R0 P1 p0 o2 U
    #绘制基础的散点图
    + L6 t% d5 j$ j( Lggplot(data, aes(x=x, y=y) ) +% ]) y( D9 V: o: e$ C. I# `% i
      geom_point()
    . @4 P4 j: c4 l
    : P5 x. Q, D/ U" |
    3 e; o( h& l' s! _( @: Q% Z7 `$ l1 Y6 _2 T5 G& [, W/ H
    2.绘制二维直方图。
    * @6 a( T5 B/ E1 m8 u####二维直方图可使用geom_bin2d()函数绘制) ^1 v  M. w( @( z$ ]3 r6 u
    #二维直方图默认选项
    7 B6 o# v. D: J% G/ H5 W+ G+ H8 m5 \4 Hggplot(data, aes(x=x, y=y) ) +
    2 P/ a- ]* ?) N6 `9 f. J5 K9 ~3 v  geom_bin2d() +, g$ e- c3 _0 f/ X( P/ U0 Z% V
      theme_bw()* M( U$ G1 ]- I1 h) {

    1 H) `- p# U2 j# Bin大小控制与调色板
    . J+ m/ r3 t$ J3 J2 yggplot(data, aes(x=x, y=y) ) +
    5 z  ?! s- ~4 T  geom_bin2d(bins = 70) +
    3 o5 ^: a6 y5 b! u5 x' Y) f+ ~4 R  scale_fill_continuous(type = "viridis") +
    & X# L% |; M$ ?; f# L/ j  theme_bw()
    4 I7 n) y! n" F6 h1 O1 S
    " U- o3 m6 B' s! E9 s7 R# P
    3 ]# t9 b, R; U  K9 k! q9 V& y; w

    R语言|绘制Hexbin图

    当显示大型数据集时,散点图很难解释,因为点不可避免地会被覆盖,并且可能不被单独识别出来。hexbin图中将地块划分为多个六边形,图中阴影部分代替了条形图的高度。图形是通过R的hexbin包绘制的。


    ) y& h9 z& P0 q- b' k" W# Packages' U: D2 K2 W: {! u& t
    library(hexbin)
    - g0 Y; S5 Z, u: d. olibrary(RColorBrewer)   L7 x7 E. @- t
    - i& f* u' z* l$ V$ U  D) ?9 Q
    # Create data
    7 u5 e$ {3 z1 p' ~. c0 t! px <- rnorm(mean=1.5, 5000)
    + O* x3 P$ V) Xy <- rnorm(mean=1.6, 5000)
    5 x! f. o1 M8 T7 _4 p3 I
    0 W" @/ O1 M9 X% h0 b4 p# {3 W# Make the plot/ G2 t5 p! U) X$ E- R
    bin<-hexbin(x, y, xbins=40)$ M5 Q7 N+ K$ R5 N# T1 N1 u+ r
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))9 A3 Z- d" q( F: |) ^: `
    plot(bin, main="" , colramp=my_colors , legend=F ) $ I3 D6 T5 Y. d1 i! p
      {! w+ U' Q9 _8 X: j! J

    * ~( K: N. f1 y* h3 O0 e! ?
    % X# _; h% o- a& h! J9 m
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-8-25 20:21 , Processed in 0.374610 second(s), 51 queries .

    回顶部