今天我们学做一下NC文章的小提琴图,有小提琴图,也有散点,其实看过之前系列文章的人如果能够联想,可以想到这个图是(ggplot分组散点图-坐标轴截断-添加四分位图-显著性检验)和(ggplot批量绘制小提琴图并添加趋势连线)的结合。只不过这篇文章的图有个特点是散点分布和小提琴图形状一致,在画散点的时候利用geom_quasirandom 代替geom_jitter即可。


原文提供了原始作图数据,可去官网下载。
示例数据和注释代码已上传群文件,免费获取可加群!
作图:
读入数据
setwd("D:/KS项目/复现NC")
A <- read.csv("Fig3f.csv", header = T)
A$Integrated.density <- 0.001*A$Integrated.density
library(ggplot2)
library(ggbeeswarm)
library(ggpubr)
A$Biological.replicate <- as.factor(A$Biological.replicate)
计算平均值、sd等:
library(dplyr)
B <- A %>%
group_by(Treatment) %>%
mutate(upper = quantile(Integrated.density, 0.75),
lower = quantile(Integrated.density, 0.25),
mean = mean(Integrated.density),
median = median(Integrated.density),
sd = sd(Integrated.density))
ggplot作图:
ggplot(A,aes(x=Treatment,y=Integrated.density))+
geom_violin(width =0.8,fill='#EDEDED',color='#EDEDED')+
geom_quasirandom(aes(color=Biological.replicate),width = 0.4,size=2.5)+
scale_color_manual(name = 'Rep.',
values = c('#FFD7A8','#F2A9A9','#BAB099'),
labels = c('1','2','3'))+
theme_classic()+
labs(x=" ",
y=expression('Integrated density (x'~10^3~')'))+
theme(axis.title.y = element_text(colour = 'black',size = 16),
axis.text = element_text(colour = 'black',size = 14),
axis.line = element_line(size = 1),
legend.title = element_text(size = 14),
legend.text = element_text(size = 14))+
guides(color=guide_legend(override.aes = list(size=4)))+
geom_errorbar(data=B, aes(ymin = mean-sd,
ymax = mean+sd),width = 0.2,size=0.5)+
stat_summary(fun = "mean",
geom = "crossbar",
mapping = aes(ymin=..y..,ymax=..y..),
width=0.4,
size=0.3)+
stat_summary(aes(fill=Biological.replicate), geom="point",
fun = mean, shape=21, size=6,stroke=1.3)+
scale_fill_manual(values = c('#FFAF51','#E65454','#756233'))+
geom_signif(data=A,
aes(xmin=1, xmax=2, annotations="0.3008367",
y_position=310),
textsize = 5,tip_length = c(0, 0),
manual=TRUE, size = 0.5)+
guides(fill=guide_legend(title = 'Mean'))

结果基本是一致的,不同之处在于误差线,我是按照mean±sd,和原文有出入。其次Mean的图例,这里没有修改,不知有啥好办法,原文只有一个圈,其实用annotate函数可以加上。
更多精彩请关注我的公众号《KS科研分享与服务》
本人是音乐爱好者,从小就特别喜欢那个随着音乐跳动的方框效果,就是这个:arduino上一大把对,我忍你很久了,我就想用mpy做,全网没有,行我自己研究。果然兴趣是最好的老师,我之前有篇博客专门讲音频,有兴趣的可以回顾一下。提到可视化频谱,必然绕不开fft,大学学过这玩意,当时一心玩,老师讲的一个字都么听进去,网上教程简略扫了一下,大该就是把时域转频域的工具,我大mpy居然没有fft函数,奶奶的,先放着。音频信息如何收集?第一种傻瓜式的ADC,模拟转数字,原始粗暴,第二种,I2S库,我之前博客有讲过,数据是PCM编码。然后又去学PCM编码,一学豁然开朗,舒服,以代码为例:audio_in=I2S
漏洞复现cms漏洞环境搭建漏洞复现cms1.内容管理系统(contentmanagementsystem,CMS),是一种位于WEB前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。2.常见的cms系统国外的:Wordpress,Drupal,Joomla,这是国外最流行的3大CMS。国内则是DedeCMS和帝国,PHPCMS等。漏洞环境搭建一、
我有一个例子://LoadtheVisualizationAPIandthepiechartpackage.google.load('visualization','1.0',{'packages':['corechart']});//SetacallbacktorunwhentheGoogleVisualizationAPIisloaded.google.setOnLoadCallback(drawChart1);//Callbackthatcreatesandpopulatesadatatable,//instantiatesthepiechart,passesinthedataa
实际上,我的需求很小,其中有一个散点图,其中包含点列表和下拉列表。当我从下拉列表中选择一个项目时,应该触发其相应的数据点点击。当我在图表上选择一个数据点时,必须执行一些操作并且下拉列表应该根据选择进行更新。我们有什么办法可以做到这一点吗?我试过firePointClick,事件未定义,我希望事件与手动点击发生时我们得到的事件相同,还有其他方法吗?或任何改进 最佳答案 它不是API的一部分,但可以使用名为firePointEvent的内部API函数来完成:chart.series[0].data[0].firePointEvent('
我想在散点图中的数据点周围、极值点和轴之间留出一点额外空间。Chart.jsdocumentation列出了据称常见的offset属性,这听起来和我想要的完全一样,但它似乎只适用于水平标记轴(代码片段的前半部分)。它对散点图(下半部分)没有任何作用。我是不是做错了什么,或者这只是不受支持?解决方法是什么?varoptions,ctx;options={type:'line',data:{labels:[0,1,2],datasets:[{data:[0,1,0]}]},options:{scales:{xAxes:[{offset:true}],yAxes:[{offset:true}
有谁知道是否可以使用GoogleVisualizationsGallery中的默认Google散点图来绘制一个散点图,该散点图既有一个仅包含点的系列,一个具有最佳拟合线的系列,并在此之上图表中的一组线表示限制。即+/-20%等我们需要的图表其实是一个ControlChart在图表上显示多个系列和每个系列的单独格式。即一些系列只有点其他系列有一条最适合的线。有人知道已经使用GoogleVisualizationAPI完成的控制图吗? 最佳答案 在使用googlevisualizationapi一段时间并在网上搜索后,我不得不说这里的答
stable-diffusion官方版本地复现手册主页:https://github.com/wjxpro邮箱:804359553@qq.com文章目录**stable-diffusion官方版本地复现手册**〇、说明环境一、准备1.[stable-diffusion](https://github.com/CompVis/stable-diffusion)(标题链接可点)2.[sd-v1-4.ckpt](https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/tree/main)3.[clip-vit-large-patc
在Chart.js2中,我生成了一个散点图,其中x坐标是Epoch时间戳,y坐标是整数。我想知道是否有一种方法可以格式化图表的x轴标签,以便日期以人类可读的格式显示。更新:目前我正在从以毫秒为单位的Unix时间戳构建我的图表。该原型(prototype)的其他部分使用Date类的toDateString方法格式化这些日期(例如FriAug52016)。 最佳答案 为此,您可以使用scales.xAxes选项中的ticks.userCallback,以便为每个xaxis刻度返回格式化日期。如果您使用的是momentjs附带的捆绑版本c
我是d3和nvd3的新手,想创建一个简单的散点图,就像example但带有ordinaly轴。所以y轴值是分类字符串。这是我认为我需要做的:varxfun=function(d){returnd.Pos}//simpleints,yfun=function(d){returnd.Title}//theordinalvaluesvarchart=nv.models.scatterChart().showDistX(true).showDistY(true).color(d3.scale.category10().range()).margin({top:30,right:20,botto
我已经构建了一个具有缩放/平移功能的d3.js散点图。您可以在此处查看完整内容(单击“在新窗口中打开”以查看完整内容):http://bl.ocks.org/129f64bfa2b0d48d27c9有几个我一直无法弄清楚的功能,如果有人能指出正确的方向,我会很乐意帮助它:我想对区域应用X/Y缩放/平移边界,这样您就不能将其拖动到特定点(例如零)以下。我还尝试过创建Googlemap风格的+/-缩放按钮,但没有成功。有什么想法吗?更不重要的是,还有几个领域我已经找到了解决方案,但它非常粗糙,所以如果您有更好的解决方案,请告诉我:我添加了一个“重置缩放”按钮,但它只是删除图表并在其位置生成