Маркировка оси Y в R и как изменить ось X на определенные приращения в R - PullRequest
0 голосов
/ 04 марта 2019

Я хотел бы создать график из этих данных с шагом по оси x 500000 и с sampleIDs по оси y.Следующий код работает для создания графика, но метки оси Y не работают, и я не уверен, как кодировать отметки оси X.Кроме того, мне пришлось добавить заголовки вручную в файл данных (а затем, очевидно, добавить header = TRUE, когда я назначил d), чтобы заставить код работать.Я не должен был вставлять заголовки столбцов, хотя я должен, так как я использую setNames?

   d = read.delim("n_reads_per_sample.tsv", header = TRUE, sep = "\t")

xticks <- ( ? increments of 500000 to xmax ? )
dotchart(
  sort(setNames(d$n_reads, d$X.sample)),
  xlim = c(0, at = xticks, 1 max(d$n_reads)),
  labels = dimnames(d[[1]])
  ,
  main = "reads per sample",
  xlab = "number of reads",
  ylab = "sample"
)

В случае, если ссылка не работает, это то, как файл выглядит.

x.sample    n_reads
LT-145  3193621
LT-323  786578
LT-458  485543
LT-500  3689123
LT-95   3308764
LT-367  765972
LT-205  2090226
LT-245  10238727

1 Ответ

0 голосов
/ 05 марта 2019

Я не могу получить ваши полные данные прямо сейчас, поэтому я просто использую ваш пример в вопросе.Не уверен, что вы имеете в виду, что метки оси Y не работают.Они кажутся мне в порядке.Вы можете получить нужные метки оси X, подавив ось X, создаваемую dotchart, а затем создав собственную ось, используя функцию axis.Это требует немного фантазии с par.Кроме того, если вы не растянете свое графическое окно, вам не хватит места для печати всех меток осей.Я уменьшил размер шрифта и растянул окно, чтобы получить график ниже.

UpperLimit <- ceiling(max(d$n_reads)/500000)*500000
xticks <- seq(0,UpperLimit, 500000)

par(xaxt = "n")
dotchart(
  sort(setNames(d$n_reads, d$X.sample)),
  xlim=c(0, UpperLimit),
  labels = dimnames(d[[1]]),
  main = "reads per sample",
  xlab = "number of reads",
  ylab = "sample"
)
par(xaxt = "s")
axis(1, at=xticks, cex.axis=0.7) 

dotchart with specified x-axis ticks

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...