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

时间:2019-03-04 18:38:57

标签: r

我想创建一个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

1 个答案:

答案 0 :(得分: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