QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2888|回复: 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图的绘图代码。
    7 x" o( `' w4 g. S0 W- n. V) F" B0 s0 q6 A4 v! f6 \4 ^
    R语言|绘制二维直方图" E1 e8 }% ]/ |# Y* s7 ?7 H
    对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    / I* v; Z5 r! e" o2 p! P' r8 t3 H( M/ Q' @5 d
    1.先绘制基础的散点图;' e+ ~0 `) G) J5 w0 ]3 O
    ##二维直方图
    1 f2 I" a" n/ M) n% ~3 U, p9 j7 Y# Library
    4 m/ D* Z8 N' o6 Jlibrary(tidyverse)# B) J, V- l* f
    library(ggplot2)$ F( [) a/ W2 I5 v# l2 r* |

    / ^. K9 B( }: h8 J5 E# 读取数据4 w: ?9 E, G& L( o7 ?- L$ `1 ~
    a <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )1 }6 v  p7 H0 a' z
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) ); s& r% n: {' `) U% W
    c <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )) I( q/ B$ x1 ^) `8 `. K
    data <- rbind(a,b,c)+ f8 b7 Q+ I4 M; l
    , D. C7 T# [+ t- {2 c
    #绘制基础的散点图
    + `# Y) b! N/ i8 ]4 K; Nggplot(data, aes(x=x, y=y) ) +
    4 J  a. O. b  x7 s2 e% ]# b  geom_point()
    5 N" `7 U; o! ^0 O$ d( A( X4 s. c& {: P* ^. c
    6 t7 _3 g% L9 c% e
    8 @5 H( H: E! l1 r9 F0 W
    2.绘制二维直方图。
    : M" G' g" ]( I7 Z% o; B$ k, f+ Y####二维直方图可使用geom_bin2d()函数绘制2 J+ g* [1 S! L0 B8 {! T
    #二维直方图默认选项
    , B' d0 V! {6 F, e5 E" j  g" kggplot(data, aes(x=x, y=y) ) +
    8 \9 r; j' c1 A9 u  geom_bin2d() +
    $ c  e: C$ G5 y1 Q, L" |  theme_bw()
    ! t- q  ~9 b: u* w6 M# M
    . M% k1 R' E, T4 z6 s: @2 d# Bin大小控制与调色板
    9 X+ ~+ B% V+ b* Yggplot(data, aes(x=x, y=y) ) +" r# J4 N2 V* Q4 I8 {7 h" _: I
      geom_bin2d(bins = 70) ++ {  ^4 K7 v/ z5 \3 R% X9 o* b
      scale_fill_continuous(type = "viridis") +  m4 e" x! r5 \8 s" ~
      theme_bw()
    : c! Z9 N8 G! w  l' g) }& q8 U# v" z
      q  L6 ^5 r; C% L& `0 g

    R语言|绘制Hexbin图

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

    1 D+ w  a2 X  L9 c7 ]
    # Packages% D$ K: y( x' \& o
    library(hexbin)
    3 [3 H- O( Y* D4 `9 D$ I* wlibrary(RColorBrewer)
    9 M2 H& S$ R2 C4 |7 T, H
    4 B$ g2 S* F9 Z  E, F( _' L, I# Create data
    % \( ]( T+ z. P+ J9 B: dx <- rnorm(mean=1.5, 5000)& \" _3 Z8 A5 n' v: `1 v
    y <- rnorm(mean=1.6, 5000) " b( K* {$ u5 h; H% Z
    & _" b# L5 b8 d( S
    # Make the plot
    2 f" v. y7 g7 a$ Qbin<-hexbin(x, y, xbins=40)4 u* n1 s' U2 b0 A4 U; T. s6 B% _
    my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    ( j( k1 g1 K) S' B9 q; ~2 c1 _7 p1 Xplot(bin, main="" , colramp=my_colors , legend=F )   K# A3 y7 e: A1 ~' B0 i

    ! i$ b3 ?# ~! E/ Q. R) Q; V$ k! U# x
    0 z3 z& o6 f* R0 w+ `. Q) P
    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, 2025-7-20 10:01 , Processed in 0.680453 second(s), 50 queries .

    回顶部