R中的y轴标记以及如何将X轴更改为R中的特定增量

问题描述 投票:1回答:1

我想创建一个this data图,x轴增量为500000,y轴为sampleIDs。以下代码用于创建绘图,但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
r
1个回答
1
投票

我现在无法获取您的完整数据,所以我只是在问题中使用您的样本。不确定y轴标签不起作用的含义。他们似乎对我好。您可以通过抑制dotchart生成的x轴然后使用axis函数创建自己的轴来获取所需的x轴标签。这需要与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

© www.soinside.com 2019 - 2024. All rights reserved.