楼主: cheetahfly
8958 1

[学习分享] 介绍一种展示4个维度数据的图形 [推广有奖]

  • 2关注
  • 71粉丝

版主

院士

6%

还不是VIP/贵宾

-

威望
0
论坛币
58984 个
通用积分
1461.5282
学术水平
480 点
热心指数
587 点
信用等级
328 点
经验
126603 点
帖子
2072
精华
1
在线时间
3779 小时
注册时间
2010-10-27
最后登录
2024-5-20

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
要想观察和展示4个以上维度的连续数据并不难,比如,可以用三维坐标代表三个维度,另外用大小、颜色等代表另外的维度。
比如,用iris数据做例子:
  1. library(scatterplot3d)
  2. # set color
  3. col_blue <- hsv(h = 0.66, s =  (iris$Petal.Width - min(iris$Petal.Width))/(diff(range(iris$Petal.Width))) * 0.6 + 0.4 , v = 1)
  4. # Plot
  5. scatterplot3d(iris[,1:3], pch = 16, color = col_blue)
复制代码

001.png
现在介绍另外一个图形,以另外一种平面方式展示三维以上的连续数据——ggtern包
  1. # cran上有这个包,但版本是2.2.1,本帖中要用到2.2.2,因此要用到另外一个安装方法
  2. devtools::install_git('https://bitbucket.org/nicholasehamilton/ggtern')
  3. library(tidyverse)
  4. library(ggtern)

  5. # 以下作图
  6. iris %>%
  7.   ggtern(aes(Sepal.Length, Sepal.Width, Petal.Length)) +
  8.   geom_hex_tern(bins = 5, aes(value = Petal.Width, fill = ..count..))
复制代码

002.png
有点意思了吧,还能信息量还能更加丰富一些:
  1. iris %>%
  2.   ggtern(aes(Sepal.Length, Sepal.Width, Petal.Length)) +
  3.   theme_bw() +
  4.   geom_hex_tern(bins = 5,fun = mean, aes(value = Petal.Width, fill = ..stat..)) +
  5.   stat_hex_tern(bins = 5,fun = mean,
  6.                 geom = 'text',
  7.                 aes(value = Petal.Width, label = sprintf("%.2f", ..stat..)),
  8.                 size = 3, color = 'white')
复制代码

003.png
除了六边形式,还能以三角形式展示:
  1. iris %>%
  2.   ggtern(aes(Sepal.Length, Sepal.Width, Petal.Length)) +
  3.   theme_bw() +
  4.   geom_tri_tern(bins = 5, fun = mean,
  5.                 aes(value = Petal.Width, fill = ..stat..)) +
  6.   stat_tri_tern(bins = 5, fun = mean,
  7.                 geom = 'text',
  8.                 aes(value = Petal.Width, label = sprintf("%.2f", ..stat..)),
  9.                 size = 3, color = 'white', centroid = TRUE)
复制代码
004.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:scatterplot centroid Scatter Library length

沙发
nkunku 发表于 2018-1-23 03:07:35 |只看作者 |坛友微信交流群
不错,学习一下。不过,说到展示四维数据,其他的一些软件,如Matlab和Mathematica也是不错的。如
BubbleChart3D[RandomReal[1, {3, 10, 4}],
ChartStyle -> {Red, Blue, Green},
ChartLegends -> {"Cu", "Cd", "PHA"}]
或者
BubbleChart3D[RandomReal[1, {3, 10, 4}], LabelingFunction -> Above,
FaceGrids -> None, Boxed -> False, BoxRatios -> {1.2, 1, 1}]
前三列数据定义空间位置,第四列展示数据的大小






1.jpg (59.38 KB)

1.jpg

2.jpg (25.29 KB)

2.jpg

已有 1 人评分经验 学术水平 收起 理由
cheetahfly + 30 + 1 精彩帖子

总评分: 经验 + 30  学术水平 + 1   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-23 16:12