我有一个3列matrix; 根据第1列和第2列值绘制点图,但是根据第2列(6个不同组)绘制颜色。 我可以成功地绘制所有的点,但是最后一个被分配了紫色的绘图组(组6)掩盖了其他组的绘图。 有没有办法让情节点更透明? s <- read.table("/…/parse-output.txt", sep="\t") dim(s) [1] 67124 3 x <- s[,1] y <- s[,2] z <- s[,3] cols <- cut(z, 6, labels = c("pink", "red", "yellow", "blue", "green", "purple")) plot(x, y, main= "Fragment recruitment plot – FR-HIT", ylab = "Percent identity", xlab = "Base pair position", col = as.character(cols), pch=16)
最近ggplot2的一些简洁的用法已经出现,并且已经发布了部分或完整的解决scheme: ggheat 大括号 position_dynamic ggheat值得注意,因为它只是通过绘制而不是返回对象来打破ggplot隐喻。 花括号的解决scheme是值得注意的,因为没有一个真正符合ggplot2高级概念(例如,你应该指定一个你想要打破的点的范围,然后在别的地方能够指定你想要的范围显示的几何 – 箱子,紫色的牛等)。 ggplot2书 (我将很快下令阅读2个在线章节)似乎是关于使用语法和函数,而不是编写新的或扩展现有的。 我想学习添加一个特定的function或者开发一个新的geom,并且正确地做。 ggplot2可能并不是像grid或基础graphics一样的普通graphics软件包,但是有很多graphics只是现有的ggplot2几何graphics的一个或两个扩展。 当这些情况出现时,我通常可以把足够的东西放在一起做一些事情,但是如果我需要几十次相同的情节呢? 如果其他人喜欢它,并且想要使用它,现在他们每次需要该图时都必须通过相同的过程。 在我看来,正确的解决scheme是添加一个stat_heatplot和geom_heatplot ,或添加一个geom_Tuftebox Tufte箱图等,但我从来没有见过一个实际扩展ggplot2的例子; 只是如何使用它的例子。 有什么资源可以深入挖掘ggplot2并开始扩展它? 我特别感兴趣的是如上所述的在轴上指定范围的高级方法,但对ggplot2打勾的一般知识也是受欢迎的。 如果缺less一个连贯的指导(很less有足够先进的修补,因此在这里可能不存在),如何才能了解内部? 检验来源显然是一种方式,但是起始的function是什么等等。
我正在准备出版的阴谋。 我创build了一个堆积箱图,显示每组患者的血清阴性与非阴性的复杂积累的频率。 图例是使用数据框中的标签,这些标签适合于我们正在从事项目工作但不出版的人员。 我想把名字改为读者更快理解的东西。 所以例如运行下面的脚本 grp <- gl(n=4,k=20,labels=c("group a","group b","group c", "group d")) value <- runif(n=80, min=10, max=150) outcome <- cut(value,2) data <- data.frame(grp,value,outcome) ggplot(data, aes(grp, fill=outcome)) + geom_bar() +xlab("group") +ylab("number of subjects") + labs(fill="Serologic response") 该代码创build了不适合发布的关键标签“(10.4,80]”和“(80,150)”,相反,我想要“双重否定”和“对a和/或b正面”。 我想我可以回到数据框,并转换成正确的标签的新variables。 或者我可以重新标记我的因素 ? 不过,我宁愿在绘图的时候这样做。
我正在尝试使用ggplot2来创build一个日志正常y比例的性能图表。 不幸的是我不能产生好的滴答作为基地function。 这里我的例子: library(ggplot2) library(scales) # fix RNG set.seed(seed=1) # simulate returns y=rnorm(999,0.02,0.2) # M$Y are the cummulative returns (like an index) M=data.frame(X=1:1000,Y=100) for (i in 2:1000) M[i,"Y"]=M[i-1,"Y"]*(1+y[i-1]) ggplot(M,aes(x=X,y=Y))+geom_line()+scale_y_continuous(trans=log_trans()) 产生丑陋的蜱: 我也试过: ggplot(M,aes(x=X,y=Y)) + geom_line() + scale_y_continuous(trans=log_trans(), breaks=pretty_breaks()) 我如何获得与默认绘图函数相同的中断/滴答: plot(M,type="l",log="y") 结果应该看起来像这样,但不是硬打字,而是dynamic的。 我尝试了像axisTicks()函数,但没有成功: ggplot(M,aes(x=X,y=Y)) + geom_line() + scale_y_continuous(trans=log_trans(), breaks=c(1,10,100,10000)) 谢谢! 编辑:插入图片
我被要求重新创build以下风格的情节。 (请忽略这是否是一种很好的可视化types的问题,并且可以认为这是为数字表添加一个彩色元素。 其中大部分是相当简单的,但我还没有find一个好的方法,使中心空心。 为了时间的利益,我可以诉诸添加隐形的虚拟数据(我会张贴这种方法,如果没有其他人做,但似乎不如最好的修改主题)。 有没有基于主题的解决scheme或非ggplot2 R解决scheme? 我们在模仿什么 简单的ggplot2结果(不需要的填充中心) library(ggplot2) # make sample dataframe Category <- c("Electronics", "Appliances", "Books", "Music", "Clothing", "Cars", "Food/Beverages", "Personal Hygiene", "Personal Health/OTC", "Hair Care") Percent <- c(81, 77, 70, 69, 69, 68, 62, 62, 61, 60) internetImportance<-data.frame(Category,Percent) # append number to category name internetImportance$Category <- paste0(internetImportance$Category," – ",internetImportance$Percent,"%") # set factor […]
我在一个数字中有数千个点,并设置“大小= 1”。 但是图例中的磅值也减less了。 如何增加图例中的磅值? 例如。 num <- 10000 set.seed(1) df <- data.frame(x = seq(1, num), y = runif(num), z = rep(1:2, each = num / 2)) df$z <- factor(df$z) library(ggplot2) p <- ggplot(df, aes(x, y, colour = z)) + geom_point(size = 1) p
当把缺失值传递给ggplot的时候,它非常友善,并警告我们他们在场。 在交互式会话中这是可以接受的,但是在编写报告时,输出不会混杂在警告中,特别是在有很多警告的时候。 下面的例子有一个标签丢失,这会产生一个警告。 library(ggplot2) library(reshape2) mydf <- data.frame( species = sample(c("A", "B"), 100, replace = TRUE), lvl = factor(sample(1:3, 100, replace = TRUE)) ) labs <- melt(with(mydf, table(species, lvl))) names(labs) <- c("species", "lvl", "value") labs[3, "value"] <- NA ggplot(mydf, aes(x = species)) + stat_bin() + geom_text(data = labs, aes(x = species, y = value, label […]
我想在ggplot2中创build一个干净的文本标签散点图。 目标是视觉上呈现与大约25个项目相关的不断增加的价值。 我已经在使用“position_jitter”,但我想知道我能做得更好。 这里是一些模拟数据: title <- rep("A Really Rather Long Text Label", 25) value <- runif(25, 1,10) spacing <- seq(1:25) df <- data.frame(title, value, spacing, stringsAsFactors = FALSE) 这里是生成图的代码: library(ggplot2) myplot <- ggplot(data=df, aes(x=spacing, y=value, label = title)) + geom_text(aes(colour = value), size = 2.5, fontface = "bold", vjust = 0, position = position_jitter(width=5, height=0)) […]
我想创build一个如下所示的情节: 我知道我可以使用fmsb软件包中的radarchartfunction。 我想知道是否ggplot2可以这样做,使用极坐标? 谢谢。
我想用ggplot2作为SVG保存一个堆积区域图(代码示例可以在这里find)。 尝试了开罗套餐,但结果是糟糕的。 library(ggplot2) library(grid) library(Cairo) … #png(output_file, width=800, height=400) Cairo(800,400,file=paste(output_file, ".svg", sep=""),type="svg",bg="transparent",pointsize=8, units="px",dpi=400) gt <- ggplot_gtable(ggplot_build(p)) gt$layout$clip[gt$layout$name=="panel"] <- "off" grid.draw(gt) dev.off()