Точечная диаграмма с вертикальными линиями — график леденца на палочке

#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)  

введите описание изображения здесь

Ответ №3:

Используя ggplot2, например:

 library(ggplot2)  ggplot()     geom_segment(aes(x = disp, xend = disp, y = 0, yend = wt), data = mtcars)    geom_point(aes( x = disp, y = wt), colour = "red", size = 6, data = mtcars)   

введите описание изображения здесь