#r #ggplot2 #figure
#r #сюжет #биоинформатика
Вопрос:
Я хотел бы построить точечную диаграмму следующим образом: http://www.cbioportal.org/public-portal/images/previews/tp53_mutations.png, в которой каждая точка имеет окружность вертикальную линию.
Самое близкое, что я нашел ниже, — это 3D-точечная диаграмма library(scatterplot3d)
, но у меня есть только x,y.
У вас есть какие-либо предложения по библиотеке/функции/опции для этого?
Ответ №1:
Также довольно просто в базовой графике (цветные прямоугольники под осью y немного сложнее):
op lt;- par(ps=10) par(mar=c(2, 3.5, 2, 1)) plot(x, y, ylim=c(-10, max(y)), t="n", axes=FALSE, ann=FALSE) axis(1) axis(2, at=pretty(c(0, max(y)))) mtext("# Mutations", side=2, line=2.5) mtext("P53_Human", side=3, line=0.5, adj=0, font=2) segments(x0=x, y0=y, y1=0, col=8) points(x, y, pch=21, col=1, bg=2) usr lt;- par()$usr rect(usr[1], -8, usr[2], -1, col=8, border=NA) rect(10, -10, 30, 1, col=rgb(0,1,0), border=rgb(0,0.8,0)) text(20, -5, label="P53", col="white") rect(90, -10, 280, 1, col=rgb(1,0,0), border=rgb(0.8,0,0)) text(180, -5, label="P53", col="white") rect(320, -10, 360, 1, col=rgb(0,0,1), border=rgb(0,0,0.8)) text(340, -5, label="P53", col="white") par(op)
Ответ №2:
Самое простое решение только для круга и вертикальной линии, как просили:
vnum2 = runif(50, 0,1) plot(1:50, vnum2) segments(1:50, 0, 1:50, vnum2)