ggplot2包微信登陆载入数据失败失败,不知道是什么原因

ggplot2包载入失败,不知道是什么原因_百度知道
ggplot2包载入失败,不知道是什么原因
我有更好的答案
.,数据相关的绘图与数据无关的绘图分离 ggplot2是按图层作图 ggplot2保有命令式作图的调整函数: ggplot2的核心理念是将绘图与数据分离。 ==========================,使其更具灵活性 ggplot2将常见的统计变换融入到了绘图中总结来说有以下几点
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁R中的ggplot2包 - 苑黎 - 博客园
qplot()函数是一个快速作图函数
& 用数据diamands
head(diamonds)
carat & &cut & & & & & &color &clarity depth table price0.23 & Ideal & & & & & &E & & &SI2 & &61.5 & &55
Premium & & & &E & & SI1 & &59.8 & & &61
326 & &0.23
Good & & & & & &E & & VS1 & 56.9 & & & 65
327 &&0.29
Premium & & & I & & &VS2 & 62.4 & & & 58
Good & & & & & J & & & SI2 & 63.3 & & & 58
3350.24 Very Good & &J & &VVS2 & 62.8 & & & 57
& &参数colour,shape
& &qplot(x,y,data,colour=data中的某个参数,shape=data中的某个参数) & &qplot函数能够自 & &动就行分类如colour,shape分别表示以该数据中的变量自动设置颜色 &和形状
& &eg:qplot(carat,price,data = diamonds,colour=color) & 也可以自己设置图像的大小,颜 & &色用I() &如: colour=I("red")
& & & 参数alpha
& & 对于大数据而言,使用半透明的颜色可以有效减轻图形元素的重叠现象。用alpha=c(0:1)图 形 属性,从0完全透明到1完全不透明,透明度可用分数表示 &分母表示经过多少次重叠之后颜色将变得不透明
& & & &qplot(carat,price,data = diamonds,alpha=I(1/100))
& 参数geom(几何对象)、
二维变量关系
geom="point" 绘制散点图。当指定了x,y参数时,这是默认的设置
geom="smooth"拟合一条平滑曲线,并将曲线和标准误展示出来
geom="boxplot"绘制箱线胡须图
geom="path" &"line"可以在数据点之间绘制连线。这类图的传统作用是探索时间和其他变量之间的关系。
一维的分布
连续变量 &geom="histogram"绘制直方图(默认的选择),geom="freqpoly"绘制频率多边形,geom="density"绘制密度曲线
离散变量,geom="bar"绘制条形图
eg:qplot(carat,price,data = diamonds,geom = c("point","smooth"))
使用method参数可以设置不同的平滑器 &更多平滑器的信息可以查阅?loess,曲线的平滑程度可由span参数控制,取值范围0(很不平滑)到1(很平滑)
箱型图和扰动点图
geom="jitter"扰动点图 &&geom="boxplot"
qplot(color,price/carat,data = diamonds,geom = "jitter",alpha=I(1/20),colour=clarity)
qplot(color,price/carat,data = diamonds,geom = "boxplot",alpha=I(1/20),colour="black",size="2",fill="red")
facet参数:分面
如:qplot(carat,data = diamonds,facets = color~.,geom = "histogram",binwidth=0.1,xlim = c(0,3))
表示以color进行分面,facet=color~. &一定要注意书写。这是频数分布,若想弄成频率分布,则要加"..density.." & &如:qplot(carat,data = diamonds,..density..,facets = color~.,geom = "histogram",binwidth=0.1,xlim = c(0,3))
xlim,ylim:设置x轴和y轴的显示区间
log:说明对哪一个坐标轴应该取对数,如 log="x"对x轴取对数,log="xy"表示对x和y轴取对数
main:图形的主标题
xlab,ylab:设置x轴和y轴的标签文字
ggplot2的数据整理
数据集要求必须是一个数据框
谷歌镜像:/google/
学习ggplot2包的一个比较好的网站:/english/wiki/ggplot2-barplots-quick-start-guide-r-software-and-data-visualization
阅读(...) 评论()由于python中matplotlib包的画图功能比较基本,不怎么炫酷,所以想用R中的ggplot2来作图。用mysql作为数据中介,可以让python和R共享数据,这样数据处理起来能发挥各自优势,同时保持数据一致,而用R来做图也就方便很多了。 原来在做数据可视化的时候用过ggplot2,不过没有系统学过,现在再学一遍。《ggplot2:数据分析与图形艺术》是一本全面的书,可以作为工具书。这次复习看的是知乎上的一个问题:
上面的回答很精炼,谢谢所有答主。 -- 首先是ggplot2的思想:
作一张图就是将数据特点映射到点、线等几何对象的大小、颜色等属性上
一张统计图还可能包含数据的统计变换(均值、方差等,stats),最后绘制在某个特定的坐标系(coord)中,还可能有分面(facet,将绘图窗口划分为若干子窗口)用来生成数据不同子集的图形
ggplot2的作图方式是按照图层作图,先设置一张“画布”,然后再向“画布”上添加一层一层的图层(会ps的同学会觉得很熟悉) 几个概念:
几何对象(geom_):代表在图中实际看到的图形元素,如点、线、多边形等
图形属性(aes):横纵坐标、点的大小、颜色,填充色等
统计变换(stat_):对数据进行的某种汇总与变换等
标度(scale):其作用是将数据的取值映射到图形空间,例如用颜色、大小或形状来表示不同的取值。展现标度的常见做法是绘制图例和坐标轴--他们实际上是从图形到数据的一个映射,使读者可以从图形中读取原始数据
坐标系(coord):描述了数据时如何映射到图形所在的平面的,它同时提供了看图所需的坐标轴和网格线
分面(facet):描述了如何将数据分解为各个子集,以及如何对子集作图并联合进行展示。 书上说的作图语法的局限性:
对于感兴趣的问题,并不指出应该采用什么图形来进行展示,语法只能提供关于作图流程的说明,并不能告诉你作什么图合适
语法并不规定图形的外观是怎样的,应该根据经验确定
并没有交互式操作,ggplot2只能绘制静态图形(?)想绘制交互式图形需要看其他文献 一个小例子: library(ggplot2)
x &- rnorm(<span style="color: #0,<span style="color: #,<span style="color: #) #生成100个均值为14,方差为5正态分布随机数
y &- x + rnorm(<span style="color: #0,<span style="color: #,<span style="color: #
p &- ggplot(data = NULL) + aes(x = x,y = y) #创建“画布”
#下面是添加点,这里是添加几何对象点,color就是图形属性,+号就是添加一个图层
p &- p + geom_point(color = "darkred")
#在添加一个图层,添加注释
p &- p + annotate("text",x =<span style="color: # , y = <span style="color: #,parse = T,label = "x[1] == x[2]")
阅读(...) 评论()ggplot2包载入失败,不知道是什么原因_百度知道
ggplot2包载入失败,不知道是什么原因
数据相关的绘图与数据无关的绘图分离 ggplot2是按图层作图 ggplot2保有命令式作图的调整函数。 ==========================总结来说有以下几点..: ggplot2的核心理念是将绘图与数据分离,使其更具灵活性 ggplot2将常见的统计变换融入到了绘图中
来自团队:
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁下次自动登录
现在的位置:
利用ggplot2画出各种漂亮图片详细教程
作者:Guangchuang Yu
原文链接:
1、Why use
是我见过最human friendly的软件,这得益于Leland Wilkinson在他的著作《》中提出了一套图形语法,把图形元素抽象成可以自由组合的成分,Hadley Wickham把这套想法在中实现。
为什么要学习,可以参考的(btw: 在序言的最后,我被致谢了)。
Hadley Wickham也给出让我们说服自己,我想再补充一点,Hadley Wickham是学医出身的,做为学生物出身的人有什么理由不支持呢:)
数据(Data)和映射(Mapping)
几何对象(Geometric)
标尺(Scale)
统计变换(Statistics)
坐标系统(Coordinante)
图层(Layer)
分面(Facet)
主题(Theme)
这里将从这些基本要素对进行介绍。
2、数据(Data)和映射(Mapping)
下面以一份钻石的数据为例,这份数据非常大,随机取一个子集来。
require(ggplot2)
data(diamonds)
set.seed(42)
small &- diamonds[sample(nrow(diamonds), 1000), ]
head(small)
cut color clarity depth table price
## 4 Very Good
470 4.14 4.17 2.56
658 4.32 4.34 2.67
summary(small)
1st Qu.:0.400
1st Qu.:61.0
Median :0.710
Very Good:227
Median :61.8
3rd Qu.:1.070
3rd Qu.:62.5
(Other): 37
1st Qu.:56.0
1st Qu.:4.74
1st Qu.:4.76
Median :57.0
Median : 2595
Median :5.75
Median :5.78
3rd Qu.:59.0
3rd Qu.: 5495
3rd Qu.:6.60
3rd Qu.:6.61
1st Qu.:2.92
Median :3.55
3rd Qu.:4.07
实际上是把数据中的变量映射到图形属性上。以克拉(carat)数为X轴变量,价格(price)为Y轴变量。
p &- ggplot(data = small, mapping = aes(x = carat, y = price))
上面这行代码把数据映射XY坐标轴上,需要告诉2,这些数据要映射成什么样的几何对象,下面以散点为例:
p + geom_point()
几何对象将在下面的小节介绍,这一节,关注的是数据和图形属性之间的映射。
如果想将切工(cut)映射到形状属性。只需要:
p &- ggplot(data=small, mapping=aes(x=carat, y=price, shape=cut))
p+geom_point()
再比如我想将钻石的颜色(color)映射颜色属性:
p &- ggplot(data=small, mapping=aes(x=carat, y=price, shape=cut, colour=color))
p+geom_point()
3、几何对象(Geometric)
在上面的例子中,各种属性映射由函数执行,只需要加一个图层,使用geom_point()告诉要画散点,于是所有的属性都映射到散点上。
geom_point()完成的就是几何对象的映射,2提供了各种几何对象映射,如geom_histogram用于直方图,geom_bar用于画柱状图,geom_boxplot用于画箱式图等等。
不同的几何对象,要求的属性会有些不同,这些属性也可以在几何对象映射时提供,比如上一图,也可以用以下语法来画:
p &- ggplot(small)
p+geom_point(aes(x=carat, y=price, shape=cut, colour=color))
2支持图层,我通常把不同的图层中共用的映射提供给函数,而某一几何对象才需要的映射参数提供给geom_xxx函数。
这一小节我们来看一下各种常用的几何对象。
直方图最容易,提供一个x变量,画出数据的分布。
ggplot(small)+geom_histogram(aes(x=price))
同样可以根据另外的变量给它填充颜色,比如按不同的切工:
ggplot(small)+geom_histogram(aes(x=price, fill=cut))
也可以将其分开,side-by-side地画直方图。
ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="dodge")
还可以使用position="fill",按照相对比例来画。
ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="fill")
柱状图非常适合于画分类变量。在这里以透明度(clarity)变量为例。按照不同透明度的钻石的数目画柱状图。
ggplot(small)+geom_bar(aes(x=clarity))
柱状图两个要素,一个是分类变量,一个是数目,也就是柱子的高度。数目在这里不用提供,因为2会通过x变量计算各个分类的数目。
当然你想提供也是可以的,通过stat参数,可以让geom_bar按指定高度,比如以下代码:
ggplot()+geom_bar(aes(x=c(LETTERS[1:3]),y=1:3), stat="identity")
柱状图和直方图是很像的,直方图把连续型的数据按照一个个等长的分区(bin)来切分,然后计数,画柱状图。而柱状图是分类数据,按类别计数。我们可以用前面直方图的参数来画side-by-side的柱状图,填充颜色或者按比例,它们是高度一致的。
柱状图是用来表示计数数据的,但在生物界却被经常拿来表示均值,加上误差来表示数据分布,这可以通常图层来实现,我将在图层一节中给出实例。
密度函数图
说到直方图,就不得不说密度函数图,数据和映射和直方图是一样的,唯一不同的是几何对象,geom_histogram告诉要画直方图,而geom_density则说我们要画密度函数图,在我们熟悉前面语法的情况下,很容易画出:
ggplot(small)+geom_density(aes(x=price, colour=cut))
ggplot(small)+geom_boxplot(aes(x=cut, y=price,fill=color))
geom_boxplot将数据映射到箱式图上,上面的代码,我们应该很熟悉了,按切工(cut)分类,对价格(price)变量画箱式图,再分开按照color变量填充颜色。
2提供了很多的geom_xxx函数,可以满足我们对各种图形绘制的需求。
geom_abline
geom_bin2d
geom_blank
geom_boxplot
geom_contour
geom_crossbar
geom_density
geom_density2d
geom_dotplot
geom_errorbar
geom_errorbarh
geom_freqpoly
geom_histogram
geom_hline
geom_jitter
geom_linerange
geom_point
geom_pointrange
geom_polygon
geom_quantile
geom_raster
geom_ribbon
geom_segment
geom_smooth
geom_violin
geom_vline
4、标尺(Scale)
前面我们已经看到了,就是在做映射,不管是映射到不同的几何对象上,还是映射各种图形属性。这一小节介绍标尺,在对图形属性进行映射之后,使用标尺可以控制这些属性的显示方式,比如坐标刻度,可能通过标尺,将坐标进行对数变换;比如颜色属性,也可以通过标尺,进行改变。
ggplot(small)+geom_point(aes(x=carat, y=price, shape=cut, colour=color))+scale_y_log10()+scale_colour_manual(values=rainbow(7))
以数据(Data)和映射(Mapping)一节中所画散点图为例,将Y轴坐标进行log10变换,再自己定义颜色为彩虹色。
5、统计变换(Statistics)
统计变换对原始数据进行某种计算,然后在图上表示出来,例如对散点图上加一条回归线。
ggplot(small, aes(x=carat, y=price))+geom_point()+scale_y_log10()+stat_smooth()
这里就不按颜色、切工来分了,不然会按不同的分类变量分别做回归,图就很乱,如果我们需要这样做,我们可以使用分面,这个将在后面介绍。
这里,aes所提供的参数,就通过提供,而不是提供给geom_point,因为里的参数,相当于全局变量,geom_point()和stat_smooth()都知道x,y的映射,如果只提供给geom_point(),则相当于是局部变量,geom_point知道这种映射,而stat_smooth不知道,当然你再给stat_smooth也提供x,y的映射,不过共用的映射,还是提供给好。
2提供了多种统计变换方式:
stat_abline
stat_contour
stat_identity
stat_summary
stat_density
stat_summary2d
stat_bin2d
stat_density2d
stat_quantile
stat_summary_hex
stat_bindot
stat_smooth
stat_unique
stat_binhex
stat_function
stat_spoke
stat_vline
stat_boxplot
stat_hline
stat_ydensity
统计变换是非常重要的功能,我们可以自己写函数,基于原始数据做某种计算,并在图上表现出来,也可以通过它改变geom_xxx函数的默认统计参数。
比如我在的图一中,就把boxplot的中位线替换成了平均值来作图。
6、坐标系统(Coordinante)
坐标系统控制坐标轴,可以进行变换,例如XY轴翻转,笛卡尔坐标和极坐标转换,以满足我们的各种需求。
坐标轴翻转由coord_flip()实现
ggplot(small)+geom_bar(aes(x=cut, fill=cut))+coord_flip()
而转换成极坐标可以由coord_polar()实现:
ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar(theta="y")
这也是为什么之前介绍常用图形画法时没有提及饼图的原因,饼图实际上就是柱状图,只不过是使用极坐标而已,柱状图的高度,对应于饼图的弧度,饼图并不推荐,因为人类的眼睛比较弧度的能力比不上比较高度(柱状图)
还可以画靶心图:
ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar()
以及风玫瑰图(windrose)
ggplot(small)+geom_bar(aes(x=clarity, fill=cut))+coord_polar()
7、图层(Layer)
photoshop流行的原因在于PS 3.0时引入图层的概念,的牛B之处在于使用+号来叠加图层,这堪称是泛型编程的典范。
在前面散点图上,我们已经见识过,加上了一个回归线拟合的图层。
有了图层的概念,使用画起图来,就更加得心应手。
做为图层的一个很好的例子是,batman logo由6个函数组成,在下面的例子中,我先画第一个函数,之后再加一个图层画第二个函数,不断重复这一过程,直到六个函数全部画好。
require(ggplot2)
f1data.frame(x=x,y=y)
d -3*sqrt(33)/7,]
x1data.frame(x2=x2, y2=y2)
p2data.frame(x3=x3, y3=y3)
p3data.frame(x4=x4,y4=y4)
p4data.frame(x5=x5,y5=y5)
p5data.frame(x6=x6,y6=y6)
下面再以生物界中常用的柱状图+误差图为实例,展示2非常灵活的图层。以我2011年发表的文章中的westernblot数据为例。
Normaldata.frame(V=c("Normal", "Cancer"), mean=m, sd=s)
8、分面(Facet)
分面可以让我们按照某种给定的条件,对数据进行分组,然后分别。
在统计变换一节中,提到如果按切工分组作回归线,显然图会很乱,有了分面功能,我们可以分别作图。
ggplot(small, aes(x=carat, y=price))+geom_point(aes(colour=cut))+scale_y_log10() +facet_wrap(~cut)+stat_smooth()
9、主题(Theme)
通过之后,我们可能还需要对图进行定制,像title, xlab, ylab这些高频需要用到的,自不用说,2提供了ggtitle(), xlab()和ylab()来实现。
但是这个远远满足不了需求,我们需要改变字体,字体大小,坐标轴,背景等各种元素,这需要通过theme()函数来完成。
2提供一些已经写好的主题,比如theme_grey()为默认主题,我经常用的theme_bw()为白色背景的主题,还有theme_classic()主题,和的基础函数较像。
别外ggthemes包提供了一些主题可供使用,包括:
theme_economist theme_economist_white
theme_excel
theme_foundation
theme_igray
theme_solarized
theme_stata
theme_tufte
require(ggthemes)
p + theme_wsj()
在2013年发表的文章中的图3就是使用theme_stata来画的。
至于如何改变这些元素,我觉得我之前可以做为例子:
fdata.frame(x=x,y=y)
详细的说明,可以参考?theme的帮助文档。
10、二维密度图
在这个文档里,为了作图方便,我们使用diamonds数据集的一个子集,如果使用全集,数据量太大,画出来散点就糊了,这种情况可以使用二维密度力来呈现。
ggplot(diamonds, aes(carat, price))+ stat_density2d(aes(fill = ..level..), geom="polygon")+ scale_fill_continuous(high='darkred',low='darkgreen')
11、ggplot2实战
果壳知性里有帖子介绍了个,引来无数宅男用各种工具来,甚至于3D动态图都出来了。这里用ggplot2来画。3D版本请。
fdata.frame(x=c(x1,x2,x3), y=rep(y,3), type=rep(LETTERS[1:3], each=length(y)))
再来一个蝴蝶图,详见《Modern Applied Statistics with S-PLUS》第一章。
theta data.frame(x=radius*sin(theta), y=radius*cos(theta))
ggplot(dd, aes(x, y))+geom_path()+theme_null()+xlab("")+ylab("")
【上篇】【下篇】
您可能还会对这些文章感兴趣!
外部的引用: 1 条
机器学习方法(七):Kmeans聚类K值如何选,以及数据重抽样方法Bootstrapping &#8211; IT大道
2000人的生物信息学QQ群
生物信息学①群 :(已满)
生物信息学②群 :(已满)
生物信息学③群 :(开放)
请先在注册,凭PLoB的用户名验证入群。
生物信息快速问答社区
百度站内搜索
生物信息培训班推荐
我的收藏夹 &&

我要回帖

更多关于 微信载入朋友信息失败 的文章

 

随机推荐