QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3544|回复: 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图的绘图代码。
    ( N/ x. v4 i; B' Z. N" Y. M# a- L6 o# c# D4 w& y. K+ z2 v
    R语言|绘制二维直方图$ E/ X4 j8 {0 J# n
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。, u! U, n: X* T6 b
      y% F, A1 J! I
    1.先绘制基础的散点图;. K- P' L& p! k% Z% g) j2 g
    ##二维直方图  o& b- o% t: c
    # Library7 X3 `* L) ?* h
    library(tidyverse)* y! P) R9 G3 i) `
    library(ggplot2)
    5 y% l2 E' h, h; C0 _9 t
    : e) U4 ^6 ~5 @' |5 |; j; R0 B) t# 读取数据. ^, @( R& q9 m" f% L( S+ `
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )) z% g( `' H, A
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    + g3 N) I) J# w" _% ]7 b! x# C. h# Qc <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    5 i% X1 I/ T# A9 h) Zdata <- rbind(a,b,c); ]: q; Z4 ~! {

    7 Z$ v" M5 H* Z6 _- [#绘制基础的散点图) ~, U, L/ l0 r0 J
    ggplot(data, aes(x=x, y=y) ) +5 ]+ z% r6 K4 K, Q+ T; {
      geom_point()7 W3 o* o+ R* r# D" R. i

    ) }/ p, n$ e- N" |2 i0 m
      {! Z& E2 e( V. t! D9 K: ]/ s
    2 r  f1 u2 `3 B/ A7 L2.绘制二维直方图。" V" [  u6 j0 n/ W" I
    ####二维直方图可使用geom_bin2d()函数绘制
    . j& [6 E* [& T% _. ^7 L#二维直方图默认选项: t: d1 }: n% k8 U9 b3 l. L: |7 h- r
    ggplot(data, aes(x=x, y=y) ) +6 E2 L5 \8 l- o2 `0 q: \
      geom_bin2d() +
    . |. X' j4 l+ G0 }: `; ^" Z  theme_bw()
    ) z; N6 w/ V* i* `
    3 {* S* g4 D" w( I7 {$ k# Bin大小控制与调色板3 a" m  f* v& `
    ggplot(data, aes(x=x, y=y) ) +6 p5 b% H8 L! O  S1 }( C9 |
      geom_bin2d(bins = 70) +
      A$ ]6 i# Q+ i' B7 `2 \3 J0 w  scale_fill_continuous(type = "viridis") +0 p- F5 E  {) V  M' r$ ^
      theme_bw(). D: K2 q- G( r: Q# R3 s
    , R, t& y9 i" w; D+ G9 O5 u7 I
    ! G4 i% o+ `4 x) Y

    R语言|绘制Hexbin图

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


    " w! P) ]2 |4 k6 A) j0 Z8 B+ H3 j# Packages
    5 W5 x) {7 ~% [7 M# K3 olibrary(hexbin)
    % O$ E3 Z$ N% }# glibrary(RColorBrewer)
    $ V! q6 I5 T- `; M9 ], M1 U
    2 p  S. j4 y6 o% S$ L, ]# Create data
    , P/ Z$ M) Y+ m, s& F+ g) Mx <- rnorm(mean=1.5, 5000)
    9 m/ `. a8 ?' S! _y <- rnorm(mean=1.6, 5000)
    $ e, d& v; ?7 V6 n, e0 d
    ) n5 ]. K0 z) F2 G1 o+ R# Make the plot" `0 a/ U; \7 e1 \8 l$ W
    bin<-hexbin(x, y, xbins=40)% f/ w0 C  E4 s0 V8 l
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))* Q3 F4 q  ?/ I) P% D" c
    plot(bin, main="" , colramp=my_colors , legend=F ) 8 e9 t5 Z0 ?+ i/ Y
    " O3 A1 s% F6 [7 r

    5 k1 w- J& d# Z* _4 x! f/ o1 T4 d7 r4 ~: o
    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-10-23 05:24 , Processed in 0.453893 second(s), 50 queries .

    回顶部