ggplot画图笔记
1.数据集相加符号 %+%
2.图形属性映射 aesc()函数
aes(x=mpg,y=wt) 把mpg属性映射为x,wt属性映射为y
图层图形属性可以添加、修改和删除映射。
如
3.位置调整参数
4.条件筛选函数
big_cities<-subset(us.cities,pop>500000)
筛选出数据集中,特征变量pop大于500000的数据集
5.固定标度的定义域
- limits:固定标度的定义域。限制定义域可以帮助我们移除不想在图形上展示的数据(即设置比数据的完整范围更小的limits),同时也可以保证要进行比较的多个图形中的绘制范围一致。 任何不在此标度定义域内的值均被丢弃。
- breaks和labels:breaks控制着显示在坐标轴或图例上的值,即坐标轴上应该显示哪些刻度线的值,或一个连续型标度在一个图例中将被如何分段。labels指定了应在断点处显示的标签。若设置了labels,则必须同时指定breaks。
注意区分limits和breaks,如下:
p<-qplot(cyl,wt,data=mtcars)
p
p+scale_x_continuous(breaks=c(5.5,6.5))
p+scale_x_continuous(limits=c(5.5,6.5))
对应的图分别为
图p 图breaks 图limits
6.位置标度有关的一对函数 xlim()和ylim()
如下所示:
xlim(10,20) :一个从10到20的连续型标度
ylim(20,10): 一个从20到10的反转后连续型标度
xlim("a","b","c"):一个离散型的标度
xlim(as.Date(c("2008-05-01","2008-08-01"))):一个从2008年5月1日到2008年8月1日的日期型标度。
最常用的连续型位置标度是scale_x_continuous和scale_y_continuous,它们均将数据映射到x轴和y轴。每个连续型标度均可接受一个trans参数,允许指定若干种线性或非线性的变换,而每一种变换都是由所谓的“变换器”来实现的,变换器描述了变换本身和对应的逆变换,以及如何去绘制标签。常用的变换器如下图
变换通常用来修改位置标度,所以对于x,y和z标度都是有简便写法的,scale_y_log10()与scale_y_continuous(trans="log10")是等价地。这样y轴的标度就会以log10(y)为单位,而不会以y为单位.
7.日期和时间
值基本上属于连续型,但在标注坐标轴时有着特殊的处理方式。目前我们仅支持属于date类的日期值和属于POSIXct类的时间值。如果你的日期和时间值是其他格式的,则需要使用as.Date()或as.POSIXct()对其进行转换。
对于日期坐标轴,有三个参数可用于控制其外观和刻度的位置:major、minor以及format。
- 参数major和minor用以按照时间的单位,即年(year)、月(month)、周(week)、日(day)、时(hour)、分(minute)、秒(second)来指定主要和次要断点的位置,并且允许以这些单位的倍数出现。例如,major=“2 weeks”将在每隔两周的位置放置一个主刻度。如果未被指定,日期标度可以自动选出合适的默认值。
- 参数format指定了刻度标签的格式。下表列出了用以展示日期各个组成部分的特殊字符。例如,如果你想以14/10/1979的形式显示日期,就可以使用字符串“%d%m%y”
Insur_csv$WATCH_TIME<-as.Date(Insur_csv$WATCH_TIME) //先把特征变量转换为时间变量
plot<-ggplot(Insur_csv,aes(WATCH_TIME,WATCH_DURATION_KD))
plot=plot+geom_bar(stat="identity",colour="black")+geom_text(aes(label=round(WATCH_DURATION_KD),vjust=1.5)) //round函数是取整,vjust是设置文本显示在矩形下面
plot+scale_x_date(limits=as.Date(c("2014-11-17","2014-11-23")),labels=date_format("%Y,%m,%d")) //设置x轴的范围和时间格式。
做个小推广:程序员经常久坐,颈椎毛病比较多,特别推荐ventry颈椎保健枕
ggplot画图笔记的更多相关文章
- android canvas 画图笔记
android canvas 画图笔记 1.PathEffect类 画虚线 Paint p = new Paint(Paint.ANTI_ALIAS_FLAG); p.setStyle(Paint.S ...
- R ggplot学习笔记1
R 可视化学习笔记 记参数挺费劲的,还是用的时候查官方文档吧,现在记个大概就行吧~ 1.ggplot2分层次绘图 1.1 核心理念 把绘图与数据分离,把数据相关的绘图与数据无关的绘图分离,按图层作图. ...
- Python画图笔记
matplotlib的官方网址:http://matplotlib.org/ 问题 Python Matplotlib画图,在坐标轴.标题显示这五个字符 ⊥ + - ⊺ ⨁,并且保存后也能显示 h ...
- MATLAB画图笔记
plot函数 plot(x,y)默认格式: 若x,y是向量,则它们必须具有相同的长度.函数将以x为横轴,绘制y. 若x,y都是矩阵,则它们必须具有相同的尺寸,plot函数将针对x的各列绘制y的每列.更 ...
- ggplot2包--R可视化
1.ggplot2发展历程 ggplot2是Hadley在爱荷华州立大学博士期间的作品,也是他博士论文的主题之一,实际上ggplot2还有个前身ggplot,但后来废弃了,某种程度上这也是Hadley ...
- R包——ggplot2(二)
关于ggplot包(二) 关于ggplot包(二) 标尺(Scale) 从前面可以看到,画图其实就是在做映射,不管是映射到不同的几何对象上,还是映射各种图形属性.在对图形属性进行映射之后,使用标尺可以 ...
- ggplot2 scale相关设置
ggplot2 scale相关设置 标度设置:主要用于在ggplot画图后的各个图层进行调整设置. 1.相关属性scale设置 包括scale_size().scale_alpha().scal ...
- python matplotlib 绘图基础
在利用Python做数据分析时,探索数据以及结果展现上图表的应用是不可或缺的. 在Python中通常情况下都是用matplotlib模块进行图表制作. 先理下,matplotlib的结构原理: mat ...
- 利用ggplot2画出各种漂亮图片详细教程
1.Why use ggplot2 ggplot2是我见过最human friendly的画图软件,这得益于Leland Wilkinson在他的著作<The Grammar of Graphi ...
随机推荐
- hadoop hbase 快速启动 关闭 配置:
vim ~/.bashrcexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 //JDK安装路径export HADOOP_HOME=/usr/l ...
- 对腾讯云服务器linux系统进行分区格式化操作
- C# 截取字符串——
string strID ="NODE_aSDFghsdfgyuhjidfgh_45678" //得到_ 中间的数 int index = strID.IndexOf(" ...
- MySQL数据库笔记总结
MySQL数据库总结 一.数据库简介 1. 数据 所谓数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的.抽象的.它不仅仅指狭义上的数字,而是有多种表现形式:字母.文字.文本. ...
- what is success?
什么是成功?这是个老话题了.然而每个人对成功的认识却也不同.记得央视主持人王志说过成功是相对的,每个人都有自己的成功标准.有的人认为有钱.有房.有车.有女人,就是成功.有的人则认为成功是你做了一件你想 ...
- azkaban-executor启动时出现conf/global.properties (No such file or directory)的问题解决(图文详解)
问题详情 // :: INFO [FlowRunnerManager] [Azkaban] Cleaning recently finished // :: INFO [FlowRunnerMana ...
- Spark RDD/Core 编程 API入门系列之简单移动互联网数据(五)
通过对移动互联网数据的分析,了解移动终端在互联网上的行为以及各个应用在互联网上的发展情况等信息. 具体包括对不同的应用使用情况的统计.移动互联网上的日常活跃用户(DAU)和月活跃用户(MAU)的统计, ...
- Spring Boot (25) RabbitMQ消息队列
MQ全程(Message Queue)又名消息队列,是一种异步通讯的中间件.可以理解为邮局,发送者将消息投递到邮局,然后邮局帮我们发送给具体的接收者,具体发送过程和时间与我们无关,常见的MQ又kafk ...
- Android开发问题-真机调试连接
出现“no debuggable processes”可以: 1)尝试Tools->android->Enable ADB Intergration使之选中: 2)换一根数据线试试. 初次 ...
- 【VHDL】组合逻辑电路和时序逻辑电路的区别
简单的说,组合电路,没有时钟:时序电路,有时钟. ↓ 也就是说,组合逻辑电路没有记忆功能,而时序电路具有记忆功能. ↓ 在VHDL语言中,不完整条件语句对他们二者的影响分别是什么?组合逻辑中可能生成锁 ...