QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2906|回复: 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图的绘图代码。9 a: @; K5 B# ]; Z8 ^% K

    6 D( M( {4 C  F" P# D" c/ HR语言|绘制二维直方图
    & ~8 S7 F* ^: l( g/ ~对于2d直方图,plot区域被划分为多个正方形,调用geombin2d()函数,它提供了一个bins参数,用于控制要显示的bins数量。
    6 s" u: ~5 p# O. k8 |% l
    & ^, b4 ^4 _2 v7 S! W+ @( r1.先绘制基础的散点图;
    ! ?; i6 ^8 T3 r* G- j/ g##二维直方图8 [( C: R+ o0 O: e( k6 [% F
    # Library
    3 D* `% n" ?) H$ n+ D, ~library(tidyverse)
    : ?- w6 s* n5 N' ?library(ggplot2), y1 D) B( P6 Y" G, ?; }; ~* s' o
    $ |; `, n$ _; Q! _( ~% a
    # 读取数据
    % {! t" [% N( S* W% T$ V# B8 ua <- data.frame( x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )7 z) a+ K" U: B' [9 g" D2 r  u- J
    b <- data.frame( x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )
    ; A' o+ d; Y- N, B& v+ N/ Ec <- data.frame( x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )
    + b% b( j& x6 Z0 m# {data <- rbind(a,b,c)/ H& n  s; K, E& G0 S3 ^" V# V
    # R+ N" x2 \* b% I9 p
    #绘制基础的散点图- a% U4 |7 }+ A! ]7 C( @0 j
    ggplot(data, aes(x=x, y=y) ) +
    / o1 `0 J  g+ _. I  geom_point()5 c& E9 {2 t) ]& m8 ?
    2 l( l: i: O5 o0 e5 }/ m
    % U7 s) x0 K. m, F9 _2 v
    3 @! m7 q0 h, S& `$ q
    2.绘制二维直方图。
    0 g$ o. l, Z. \: V: y####二维直方图可使用geom_bin2d()函数绘制
    $ B. n& `; u. B( Z8 |3 r+ _! ^#二维直方图默认选项; D3 X& J$ q- B) h
    ggplot(data, aes(x=x, y=y) ) +6 y1 V" `1 u  v
      geom_bin2d() +3 c1 L/ y( k) y, h9 @: X2 I
      theme_bw()6 |6 k4 {7 X% E5 F) m& o

    ' E0 k9 ?8 ]0 H6 p; B6 u2 T# Bin大小控制与调色板
    6 x6 D) k8 h: E/ N9 M/ P+ q& i% _ggplot(data, aes(x=x, y=y) ) +
    $ J. S4 z( G) u2 ~# B  geom_bin2d(bins = 70) +
    8 M' F' y  ?& Y5 N/ A7 E  scale_fill_continuous(type = "viridis") +9 f0 s" f- {- Z
      theme_bw()' L4 a% b1 V) m8 Z& a# B+ ^
    7 t% s1 X  @7 U8 J( X* |) G/ Y4 v
    9 d' |" x8 `) ~' l/ b, k: u0 R

    R语言|绘制Hexbin图

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

      {/ j/ ~* a2 `7 n4 M: m
    # Packages; G9 n9 g) w  M8 ^. p7 A, I
    library(hexbin)
    $ d7 z" V" s3 c3 p7 Alibrary(RColorBrewer) 1 X! P0 t1 u* L$ E2 H

    7 A! c4 v0 L, e" I/ V# Create data& k" E& r: t9 ]/ ]! b- x0 t9 k! r
    x <- rnorm(mean=1.5, 5000)
    1 o6 t' n" O( ~( c2 V& Zy <- rnorm(mean=1.6, 5000)
    7 ?" I* Z3 i9 w9 m% ^
    4 M( F- c7 R+ Y$ l- a# Make the plot
    0 E* j; F% Q; n4 Obin<-hexbin(x, y, xbins=40)
    ' X( U$ W7 h1 q* E9 fmy_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
    7 n- p& J# }& Dplot(bin, main="" , colramp=my_colors , legend=F )
    . z$ g4 Z/ M+ d# ^0 I
    ; ^- g% o& v4 |" y( I% s3 P
    * `& \2 C; S1 p& h+ b/ H1 y% Q) W2 p& Q& y  g8 H4 J# F5 v
    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-26 11:42 , Processed in 1.213756 second(s), 50 queries .

    回顶部