从csv创建图像直方图

时间:2017-12-08 03:23:28

标签: r plot

所以我有一个像这样的csv文件:

0,0
1,0
2,0
3,0
4,0
...
250,1
251,0
252,0
253,2
254,2
255,9

它表示灰度图像的直方图。该文件指示颜色255出现9次,颜色250出现1次等。

我在:

中阅读了该文件
df <- read.csv("/tmp/hist.csv", header= F, dec=",")

然后试图绘制它:

hist(df$V2)

输出如下:

enter image description here

但我更喜欢的是x轴上0-255的颜色和y轴表示的频率。如何告诉R ......将轴“绕”?

1 个答案:

答案 0 :(得分:1)

不,hist(df$V2)创建出现事件的直方图(计数表)。因此,您正在绘制的内容与table(df$V2)相同(您应该确认这一点以了解正在进行的内容)。我认为这不是你想要的。

相反,我假设你想绘制所有256种颜色的颜色分布的分布。

您可以使用barplot

在基础R中执行此操作
# Barplot base R
barplot(df[, 2], names.arg = df[, 1]);

enter image description here

或使用ggplot2

# (gg)plot
colnames(df) <- c("colour", "count");
ggplot(df, aes(x = as.factor(colour), y = count)) + geom_bar(stat = "identity");

enter image description here

样本数据

# Your sample data
df <- read.csv(text =
    "0,0
     1,0
     2,0
     3,0
     4,0
     250,1
     251,0
     252,0
     253,2
     254,2
     255,9", header = T)