我想创建一个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
我现在无法获取您的完整数据,所以我只是在问题中使用您的样本。不确定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)