Как создать лог-ранг ранг / частотный график? - PullRequest
3 голосов
/ 18 октября 2011

У меня есть частота и ранг слов из корпуса Википедии, который был обработан.Просто ряд чисел x (рангов слов) и y (частот), и вам нужен график журнала в R, который выглядит следующим образом: http://en.wikipedia.org/wiki/File:Wikipedia-n-zipf.png

Как я могу это сделать?Я продолжаю получать обратную или неправильную версию.Спасибо.

Ответы [ 3 ]

2 голосов
/ 18 октября 2011

Только с базовыми функциями:

plot(x, y, log="xy") 

Это отобразит ваши точки на шкале лога.

1 голос
/ 18 октября 2011

Вы уже справились с тяжелой работой, получив частоту и рейтинг слов. Вам просто нужно построить их в логарифмическом масштабе.

##Word frequencies in Moby dick
dd = read.csv("http://tuvalu.santafe.edu/~aaronc/powerlaws/data/words.txt")

##Rename the columns and add in the rank
colnames(dd) = "freq"
dd$rank = 1:nrow(dd)

##Plot using base graphics
plot(dd$rank, dd$freq, log="xy")

Или вы можете использовать ggplot2

require(ggplot2)
ggplot(data=dd, aes(x=rank, y=Freq)) +
  geom_point() + scale_x_log10() +
  scale_y_log10()
1 голос
/ 18 октября 2011

С lattice и latticeExtra:

library(lattice)
library(latticeExtra)
xyplot((1:200)/20 ~ (1:200)/20, type = c('p', 'g'),
       scales = list(x = list(log = 10), y = list(log = 10)),
       xscale.components=xscale.components.log10ticks,
       yscale.components=yscale.components.log10ticks)

Больше примеров здесь .

...