R中的垂直折线图

机器算法验证 r 数据可视化
2022-04-17 23:38:22

我想绘制垂直线图(如本页的第一张图

在此处输入图像描述

交易是我有大约 15k 个数据点,我想呈现其频率(沿 Y 轴)。我还希望能够以不同的颜色呈现频率:例如,对于第一个 5k 点,我想要下一个 5k 的黄色折线图,我想要红色等。

我怎样才能在 R 中做到这一点?指向包的指针(以及在可能的情况下指向有用的源代码)将非常有用。R的初学者在这里。

谢谢你。

2个回答

您可以使用plot函数 withtype="h"来获取垂直线并col指定颜色,rep用于创建所需的颜色矢量,如下所示:

# simulate some data
x <- runif(15000)
x[sample(15000, 50)] <- runif(50, 0, 5)

# make the plot
plot(x, type="h", col=rep(c("red", "blue", "green"), each=5000))

这使得以下内容(黄色看起来很糟糕):

在此处输入图像描述

将条形图与 grDevices-package 结合使用来创建调色板。

require(grDevices)

# data
dat <- sample(1:10,15000,prob=runif(10),replace=T)
dat <- sort(dat)
plotdat <- as.data.frame(table(dat))
plotdat[,2] <- plotdat[,2]/sum(plotdat[,2])

# generate colors
colors <- heat.colors(10)
# and sort them according to frequency
colors <- colors[order(order(plotdat[,2],decreasing=T))]
barplot(plotdat[,2],names.arg=as.character(1:10),col=colors)

这将创建一个具有“色热越高,频率越高”属性的图

在此处输入图像描述