QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3349|回复: 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图的绘图代码。* n0 t* v$ U+ U) Z3 Y

    " i4 a* R# r/ n! m" g* w/ XR语言|绘制二维直方图+ X5 d3 s  [- P/ w% K5 f
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。8 v- V, Z# R4 z
    + l1 z6 r' l6 m" S8 x
    1.先绘制基础的散点图;
    * W# T7 f% b& N+ l+ g##二维直方图
    # A$ w1 d$ e4 O( z) O. W% e# Library+ e  v9 o! G  J* M. j
    library(tidyverse)- Z+ `, Z* \; q+ L1 m- ?
    library(ggplot2)
    0 f" z+ O$ [/ ~
    # D6 V' M1 H! K5 o& S8 u7 g# 读取数据, A, Z3 V* G. r$ T( J4 j
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )9 K4 Q3 u7 a' E7 `
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )1 G8 K7 \$ a" |& Y+ u
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )9 F9 ?! n9 C+ [5 {8 Z3 X
    data <- rbind(a,b,c)
    ' N3 S9 |$ j5 E6 E6 k1 s4 j0 H8 [; @3 v  I. w- V# C9 @
    #绘制基础的散点图5 p  r8 h3 g# \
    ggplot(data, aes(x=x, y=y) ) +
    * T6 a2 S5 [+ B. u* ~/ c  geom_point()4 Y6 q  F( O: X

    4 R0 N( d  t: T  }, t2 y% X3 o1 K8 ]" {! l" c2 H
    8 h$ _3 n; ?/ S9 \2 V1 Q
    2.绘制二维直方图。
    / }  M2 R1 Y$ S  r+ f####二维直方图可使用geom_bin2d()函数绘制8 R1 ^) v9 f( H5 `
    #二维直方图默认选项
    , @- I3 {4 v$ j& R7 Q) gggplot(data, aes(x=x, y=y) ) +3 X" `0 U. A, z$ F2 `$ K9 j' A0 e8 u
      geom_bin2d() +
    ; x0 L9 _% V9 ]  theme_bw()
    # h2 X$ }+ S1 c/ f
    - U5 T# l; {/ {- m- @# Bin大小控制与调色板) Y( y. }3 n, }& b5 Z" H; Y  V
    ggplot(data, aes(x=x, y=y) ) +5 J* h: d* \6 F1 R, a. E
      geom_bin2d(bins = 70) +
    + ]. [" M; [* ]/ a1 k! ~2 t( O  scale_fill_continuous(type = "viridis") +
    : x2 c+ K$ `# `3 m: `  theme_bw(). q* [/ o: p3 y, V

    5 u% }  u8 M, g! j
    " w; u+ s2 a9 E2 w5 z2 S9 f7 Y

    R语言|绘制Hexbin图

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

    8 x. u3 }4 g$ s" K* l$ C, j
    # Packages8 d* _/ R- V" a  S4 P0 C9 P$ p- v
    library(hexbin)) y: W/ M3 B! ?
    library(RColorBrewer)
    8 h3 o  G* N1 ^, x1 Y- j  q# C
    / U8 O! D" f) `/ d: n, f# Create data( k5 G8 c/ V+ V) U/ d3 P' _: w
    x <- rnorm(mean=1.5, 5000)
    5 A# I* ~# e- ?6 b' T' n3 fy <- rnorm(mean=1.6, 5000)
    7 e9 D% `* f7 i' O
    3 j' S; I8 g- p  j# Make the plot
    1 u: Z& w# P5 |  `bin<-hexbin(x, y, xbins=40)$ p0 ^1 O5 g8 t7 x0 W$ p6 u2 D
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))8 m+ o# k% R% s, t
    plot(bin, main="" , colramp=my_colors , legend=F )
    - l* X, v) r  F1 P# t/ S$ M( }& {; n' V- A3 v/ y. g$ i

    4 A  S& M$ _" U' Y6 ?0 g. Z; Y" d
    . l- b7 N. g& z
    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-7-22 14:30 , Processed in 0.438635 second(s), 51 queries .

    回顶部