ggplot2-绘制分布图(转载)
来源:互联网 发布:java获取jquery ip 编辑:程序博客网 时间:2024/05/07 21:42
本文更新地址: http://blog.csdn.net/tanzuozhev/article/details/51106291
本文在 http://www.cookbook-r.com/Graphs/Plotting_distributions_(ggplot2)/ 的基础上加入了自己的理解
生成绘图数据
set.seed(1234)dat <- data.frame(cond = factor(rep(c("A","B"), each=200)), rating = c(rnorm(200),rnorm(200, mean=.8)))# View first few rowshead(dat)
## cond rating## 1 A -1.2070657## 2 A 0.2774292## 3 A 1.0844412## 4 A -2.3456977## 5 A 0.4291247## 6 A 0.5060559
library(ggplot2)
直方图和概率密度图
## Basic histogram from the vector "rating". Each bin is .5 wide.## These both result in the same output:ggplot(dat, aes(x=rating)) + geom_histogram(binwidth=.5) # rating作为横轴
# ggplot(dat, aes(x=rating)) + geom_histogram(binwidth=.5, colour="black", # 边框颜色 fill="white" #填充颜色 )
ggplot(dat, aes(x=rating)) + geom_density() # 添加密度曲线
# Histogram overlaid with kernel density curveggplot(dat, aes(x=rating)) + geom_histogram(aes(y=..density..), # 这一步很重要,使用density代替y轴 binwidth=.5, colour="black", fill="white") + geom_density(alpha=.2, fill="#FF6666") # 重叠部分采用透明设置
添加一条均值线(红色部分)
ggplot(dat, aes(x=rating)) + geom_histogram(binwidth=.5, colour="black", fill="white") + geom_vline(aes(xintercept=mean(rating, na.rm=T)), # Ignore NA values for mean color="red", linetype="dashed", size=1)
多组数据的直方图和密度图
# cond作为各组的分类,以颜色填充作为区别# position的处理很重要,决定数据存在重叠是的处理方式 "identity" 不做处理,但是设置了透明ggplot(dat, aes(x=rating, fill=cond)) + geom_histogram(binwidth=.5, alpha=.5, position="identity")
# Interleaved histogramsggplot(dat, aes(x=rating, fill=cond)) + geom_histogram(binwidth=.5, position="dodge")
# dodge 表示重叠部分进行偏离# 密度图ggplot(dat, aes(x=rating, colour=cond)) + geom_density()
# 半透明的填充ggplot(dat, aes(x=rating, fill=cond)) + geom_density(alpha=.3)
Add lines for each mean requires first creating a separate data frame with the means:
# Find the mean of each grouplibrary(plyr)# 以 cond 作为分组, 计算每组的rating的均值cdat <- ddply(dat, "cond", summarise, rating.mean=mean(rating))cdat
## cond rating.mean## 1 A -0.05775928## 2 B 0.87324927
# 绘制两组数据的均值ggplot(dat, aes(x=rating, fill=cond)) + geom_histogram(binwidth=.5, alpha=.5, position="identity") + geom_vline(data=cdat, aes(xintercept=rating.mean, colour=cond), linetype="dashed", size=1)
# 密度图ggplot(dat, aes(x=rating, colour=cond)) + geom_density() + geom_vline(data=cdat, aes(xintercept=rating.mean, colour=cond), linetype="dashed", size=1)
使用分面
按照 cond 进行分面处理, 上图为A,下图为B
# 按照 cond 进行分面处理, 上图为A,下图为Bggplot(dat, aes(x=rating)) + geom_histogram(binwidth=.5, colour="black", fill="white") + facet_grid(cond ~ .)
# 添加均值线ggplot(dat, aes(x=rating)) + geom_histogram(binwidth=.5, colour="black", fill="white") + facet_grid(cond ~ .) + geom_vline(data=cdat, aes(xintercept=rating.mean), linetype="dashed", size=1, colour="red")
箱线图
# A basic box plotggplot(dat, aes(x=cond, y=rating)) + geom_boxplot()
# cond作为填充颜色的分类ggplot(dat, aes(x=cond, y=rating, fill=cond)) + geom_boxplot()
# The above adds a redundant legend. With the legend removed:ggplot(dat, aes(x=cond, y=rating, fill=cond)) + geom_boxplot() + guides(fill=FALSE) # 关闭图例
# With flipped axesggplot(dat, aes(x=cond, y=rating, fill=cond)) + geom_boxplot() + guides(fill=FALSE) + coord_flip() # x轴 y轴翻转
使用 `stat_summary’ 添加均值
# Add a diamond at the mean, and make it largerggplot(dat, aes(x=cond, y=rating)) + geom_boxplot() + stat_summary(fun.y=mean, geom="point", shape=5, size=4)
阅读全文
0 0
- ggplot2-绘制分布图(转载)
- ggplot2–绘制分布图
- ggplot2-一页多图(不同来源, 灵活绘制)(转载)
- ggplot2绘制分面图
- ggplot2绘制条形图
- ggplot2-绘制散点图
- 学以致用—二项分布(伯努利分布)概率分布图的绘制
- android 分布图的简单绘制
- 传感器节点分布图绘制-matlab
- 传感器节点分布图绘制-matlab
- ggplot2绘制Excel所有图
- ggplot2绘制Excel所有图
- qplot\ggplot2 绘制箱型图、散点图
- ggplot2-条形图和折线图(转载)
- ggplot2-分面(facet) 一页多图(转载)
- Excel图表—正态分布概率分布图(概率密度函数图及累积概率分布图)的绘制-Part 1
- Excel图表—正态分布概率分布图(概率密度函数图及累积概率分布图)的绘制-Part 2
- Excel图表—标准正态分布概率分布图(概率密度函数图及累积概率分布图)的绘制
- 求一元钱兑换1分,2分,5分的方法次数
- 手机验证码思路
- js和java中数组的区别
- Power Management
- 企业级自动化运维工具Ansible详解(上)
- ggplot2-绘制分布图(转载)
- 基于WorsPress+Xampp搭建博客
- Android开发模板------ViewPager(一)用PagerAdapter实现图片滑动作为引导页
- C#中OPC的一些基础知识
- 全国省份城市级联下拉菜单
- [App] MongoDB 单点安装及应用
- three.js 04-10 之 LineDashedMaterial 材质
- 20170628
- java--面向对象之封装(习题)