我对 R 还很陌生,所以如果答案显而易见,或者我的数据组织得不好,我深表歉意。
我试图绘制声音字符(熵)随时间的差异。我使用拍号信息将录音分成“回合”。我能够创建一个散点图,其中的线条对应于回合数 (0-9)。
代码看起来像这样:
newbout <- a$start_on
signal <- diff(newbout)
Faulkner <- data.frame(Time=a$start_on[1:length(signal)],Entropy=a$min_ent[1:length(signal)])
Gatsby <- data.frame(x=Faulkner$Entropy[2:length(Faulkner$Entropy)],
y=Faulkner$Entropy[1:length(Faulkner$Entropy)-1],
z=Faulkner$Time[1:length(Faulkner$Time)-1])
Gatsby$grp <- cumsum(signal[1:length(signal)-1]<0)
require(ggplot2)
require(grid)
b <- ggplot(Gatsby, aes(x = x, y = y)) +
geom_point(size = 2,aes(color=grp)) +
geom_path(aes(color=grp)) +
xlab("Min entropy") + ylab("Min entropy") + ggtitle("a408 d136") +
theme(axis.text=element_text(size=10),
axis.title=element_text(size=10), plot.title=element_text(size=10))
b
数据框本身如下所示:
x y z grp
1 -3.90 -2.06 111.74600 0
2 -3.67 -3.90 224.49000 0
3 -3.08 -3.67 454.96600 0
4 -4.14 -3.08 643.53700 0
5 -2.37 -4.14 735.32900 0
6 -2.79 -2.37 821.13400 0
7 -6.96 -2.79 883.99100 0
8 -6.05 -6.96 946.84800 0
9 -3.19 -6.05 1045.62000 0
10 -2.74 -3.19 1244.17000 0
11 -3.23 -2.74 1511.56000 0
12 -3.57 -3.23 1632.29000 0
13 -2.74 -3.57 1729.07000 0
14 -3.99 -2.74 1814.88000 0
15 -6.70 -3.99 1875.74000 0
16 -6.63 -6.70 1936.60000 0
17 -4.06 -6.63 2037.37000 0
18 -3.29 -4.06 2247.89000 1
19 -4.91 -3.29 1.99546 1
20 -4.19 -4.91 230.47600 1
21 -2.31 -4.19 458.95700 1
22 -2.03 -2.31 995.73700 1
23 -3.43 -2.03 1122.45000 1
24 -3.75 -3.43 1240.18000 1
25 -2.56 -3.75 1334.97000 1
26 -4.19 -2.56 1417.78000 1
目前很难想象情节中各个回合的开始和结束。是否可以为每个组分配不同的梯度,而不必为每次回合创建单独的数据帧并手动添加路径?理想情况下,我想要这样的东西,大约 0 是蓝色(从亮到暗),大约 1 是绿色(从亮到暗),其中渐变比例由时间变量 z 控制。任何建议将不胜感激!
多个颜色渐变可能不是可视化数据的最佳方式,并且 ggplot 并不真正支持这一点,但是可以通过颜色和 alpha 渐变的组合来实现类似您所描述的内容:
d <- data.frame(x=rep(1:20, 5), y=rnorm(100, 5, .2) + rep(1:5, each=20), z=rep(1:20, 5), grp=factor(rep(1:5, each=20)))
ggplot(d) +
geom_path(aes(x, y, color=grp), size=2) +
geom_path(aes(x, y, group=grp, alpha=z), size=2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)