r - 如何为 R scatterplot3d 上的每个绘图点添加标签(注释)
问题描述
数据格式“NB”如下。
> head(NB)
time speed traffic density
1 06:00 44.04854 304.6616 108.4641
2 06:10 43.73164 332.3510 111.6164
3 06:20 43.35056 359.2273 114.8773
4 06:30 42.91960 382.6465 118.5487
5 06:40 42.42904 400.3864 121.8942
6 06:50 41.91823 415.5429 124.9405
> str(NB)
'data.frame': 85 obs. of 4 variables:
$ time : Factor w/ 144 levels "00:00","00:10",..: 37 38 39 40 41 42 43 44 45 46 ...
$ speed : num 44 43.7 43.4 42.9 42.4 ...
$ traffic: num 305 332 359 383 400 ...
$ density: num 108 112 115 119 122 ...
我使用下面的代码制作了一个 3d 图表。我想知道如何将第一个“时间”列添加到 3d 图中绘制的点和标签“时间”(06:00、06:10 .... 20:00)
zz <- scatterplot3d(x=NB[,2],y=NB[,3], z=NB[,4],main=naljja,xlab="speed",ylab="traffic",zlab="density",pch=1,color = "blue",grid = TRUE)
解决方案
尝试获取您的zz
对象(的结果scatterplot3d
)并使用该xyz.convert
函数将坐标从 3D (x, y, z) 转换为 2D 投影 (x, y)。然后使用可以使用text
并从time
列(第一列)向图形添加标签。在这种情况下,我习惯于cex
减小文本大小,pos
并将标签放置在点的右侧。
library(scatterplot3d)
zz <- scatterplot3d(x = NB[,2], y = NB[,3], z = NB[,4],
xlab = "speed", ylab = "traffic", zlab = "density",
pch = 1, color = "blue", grid = TRUE)
zz.coords <- zz$xyz.convert(NB[,2], NB[,3], NB[,4])
text(zz.coords$x,
zz.coords$y,
labels = NB[,1],
cex = .5,
pos = 4)
阴谋
数据
NB <- structure(list(time = c("06:00", "06:10", "06:20", "06:30", "06:40",
"06:50"), speed = c(44.04854, 43.73164, 43.35056, 42.9196, 42.42904,
41.91823), traffic = c(304.6616, 332.351, 359.2273, 382.6465,
400.3864, 415.5429), density = c(108.4641, 111.6164, 114.8773,
118.5487, 121.8942, 124.9405)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))
参考
https://www.r-bloggers.com/2012/01/getting-fancy-with-3-d-scatterplots/
推荐阅读
- python - 使用 OpenCV 从图像中检测和提取签名
- php - IPN 工作吗?,因为 IPN 模拟器不工作,我正在尝试进行真正的交易,但我收不到任何通知
- javascript - 将条形图中的条形顶部更改为 Triangles-Chart.js
- go - 为什么我在迭代结构切片时无法访问结构字段
- webpack - NPM 模块不适用于 Webpack 3,但适用于基于 Webpack 4 的 vue-cli3
- mongodb - 在 mongodb 中跳过和限制返回的文档比预期的少
- arrays - 将工作簿存储在集合或数组中
- python - 如何使用 python 动态展平深度嵌套的 json 文件?
- java - 创建一个使用自定义条件而不是等于的 HashSet
- python - 将 groupby 数据重塑为数据框