Translating between qplot and base graphics

Description

There are two types of graphics functions in base graphics, those that draw complete graphics and those that add to existing graphics.

Details

qplot() has been designed to mimic plot(), and can do the job of all other high-level plotting commands. There are only two graph types from base graphics that cannot be replicated with ggplot2: filled.contour() and persp()

Examples

# High-level plotting commands x <- runif(10) y <- 1:10 plot(x, y); dotchart(x, y)

qplot(x, y)

plot(x, y, type = "l")

qplot(x, y, geom = "line")

plot(x, y, type = "s")

qplot(x, y, geom = "step")

plot(x, y, type = "b")

qplot(x, y, geom = c("point", "line"))

boxplot(x, y)

qplot(x, y, geom = "boxplot")
Warning message:
Continuous x aesthetic -- did you forget aes(group=...)?

hist(x)

qplot(x, geom = "histogram")
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

# cdplot(factor(x), y) # qplot(x, fill = y, geom = "density", position = "fill") # coplot(y ~ x | a + b) # qplot(x, y, facets = a ~ b) # Many of the geoms are parameterised differently than base graphics. For # example, hist() is parameterised in terms of the number of bins, while # geom_histogram() is parameterised in terms of the width of each bin. hist(x, bins = 10)
Warning message:
"bins" is not a graphical parameter

Warning message:
"bins" is not a graphical parameter

Warning message:
"bins" is not a graphical parameter

Warning message:
"bins" is not a graphical parameter

qplot(x, geom = "histogram", binwidth = .1)

# qplot() often requires data in a slightly different format to the base # graphics functions. For example, the bar geom works with untabulated data, # not tabulated data like barplot(); the tile and contour geoms expect data # in a data frame, not a matrix like image() and contour(). barplot(table(x))

qplot(x, geom = "bar")

barplot(x)

qplot(seq_along(x), x, geom = "bar", stat = "identity")
Warning message:
`stat` is deprecated

Error: stat_count() must not be used with a y aesthetic.

# image(x) # qplot(X1, X2, data = melt(x), geom = "tile", fill = value) # contour(x) # qplot(X1, X2, data = melt(x), geom = "contour", fill = value) # Generally, the base graphics functions work with individual vectors, not # data frames like ggplot2. qplot() will try to construct a data frame if one # is not specified, but it is not always possible. If you get strange errors, # you may need to create the data frame yourself. df <- data.frame(x = x, y = y) with(df, plot(x, y))

qplot(x, y, data = df)

# By default, qplot() maps values to aesthetics with a scale. To override # this behaviour and set aesthetics, overriding the defaults, you need to use I(). plot(x, y, col = "red", cex = 1)

qplot(x, y, colour = I("red"), size = I(1))

# Low-level drawing # The low-level drawing functions which add to an existing plot are equivalent # to adding a new layer in ggplot2. # Base function ggplot2 layer # curve() geom_curve() # hline() geom_hline() # lines() geom_line() # points() geom_point() # polygon() geom_polygon() # rect() geom_rect() # rug() geom_rug() # segments() geom_segment() # text() geom_text() # vline() geom_vline() # abline(lm(y ~ x)) geom_smooth(method = "lm") # lines(density(x)) geom_density() # lines(loess(x, y)) geom_smooth() plot(x, y)
lines(x, y)

qplot(x, y) + geom_line()

# Or, building up piece-meal qplot(x, y)

last_plot() + geom_line()

# Legends, axes and grid lines # In ggplot2, the appearance of legends and axes is controlled by the scales. # Axes are produced by the x and y scales, while all other scales produce legends. # See ?theme for help changing the appearance of axes and legends. # The appearance of grid lines is controlled by the grid.major and grid.minor # theme options, and their position by the breaks of the x and y scales. # Colour palettes # Instead of global colour palettes, ggplot2 has scales for individual plots. Much # of the time you can rely on the default colour scale (which has somewhat better # perceptual properties), but if you want to reuse an existing colour palette, you # can use scale_colour_manual(). You will need to make sure that the colour # is a factor for this to work. palette(rainbow(5)) plot(1:5, 1:5, col = 1:5, pch = 19, cex = 4)

qplot(1:5, 1:5, col = factor(1:5), size = I(4))

last_plot() + scale_colour_manual(values = rainbow(5))

# In ggplot2, you can also use palettes with continuous values, # with intermediate values being linearly interpolated. qplot(0:100, 0:100, col = 0:100, size = I(4)) + scale_colour_gradientn(colours = rainbow(7))

last_plot() + scale_colour_gradientn(colours = terrain.colors(7))
Scale for 'colour' is already present. Adding another scale for 'colour',
which will replace the existing scale.

# Graphical parameters # The majority of par settings have some analogue within the theme system, or # in the defaults of the geoms and scales. The appearance plot border drawn # by box() can be controlled in a similar way by the panel.background and # plot.background theme elements. Instead of using title(), the plot title is # set with the title option. See ?theme for more theme elements. last_plot() + labs(title = "My Plot Title")

Translating between qplot and base graphics的更多相关文章

  1. R语言学习笔记——Base Graphics

    做exploratory data annalysis的作业,差点被虐死了,R从头开始,边做边学,最后搞到一点多才弄完,还有一个图怎么画都不对,最后发现是数据读取的时候有问题. 用来画图的数据来自:h ...

  2. Graphics for R

    https://cran.r-project.org/web/views/Graphics.html CRAN Task View: Graphic Displays & Dynamic Gr ...

  3. Unity 5.4 测试版本新特性---因吹丝停

    原文:http://blogs.unity3d.com/2016/03/15/enhanced-visuals-better-performance-and-more-the-unity-5-4-pu ...

  4. Android 随想录之 Android 系统架构

    应用层(Application) Android 的应用层由运行在 Android 设备上的所有应用程序共同构成(系统预装程序以及第三方应用程序). 系统预装应用程序包含拨号软件.短信.联系人.邮件客 ...

  5. Android核心分析之二十三Andoird GDI之基本原理及其总体框架

     Android GDI基本框架 在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了.但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理. GDI主 ...

  6. Android系统在超级终端下必会的命令大全(adb shell命令大全)

    . 显示系统中全部Android平台: android list targets . 显示系统中全部AVD(模拟器): android list avd . 创建AVD(模拟器): android c ...

  7. TabControl控件的美化

    文件下载:http://files.cnblogs.com/zfanlong1314/TabControlEX.rar 本文转载:http://www.cnblogs.com/lmlblog/arch ...

  8. android图形基础知识

    Android核心分析(23)-----Andoird GDI之基本原理及其总体框架 2010-06-13 22:49 18223人阅读 评论(18) 收藏 举报 AndroidGDI基本框架 在An ...

  9. Android Skia和2D图形系统 .

    Android Skia 和 2D 图形系统 1 Skia 概述 Skia 是 Google 一个底层的图形.图像.动画. SVG .文本等多方面的图形库,是 Android 中图形系统的引擎. Sk ...

随机推荐

  1. XtraTreeList直接显示Access数据库表中的数据

    方法1:点击在拖入的显示控件(TreeList)右上方的箭头,在Treelist任务中选择数据源,添加项目数据源,依次选择数据库.数据集,新建连接,浏览选择数据库(*.mdb),依次点击 下一步,选择 ...

  2. 理解:Before和:After伪元素

    CSS样式表的主要作用是修饰Web页面上的HTML标记,但有时候,为了实现某个效果而往页面里反复添加某个HTML标记很繁琐,或者是显得多余,或者是由于某种原因而做不到.这就是CSS伪元素(Pseudo ...

  3. sourcetree和Git的使用教程

    1.简单的用Git管理项目. 2.怎样既要开发又要处理发布出去的版本bug情况. SourceTree是一个免费的Git图形化管理工具,mac下也可以安装. 下载地址:https://www.sour ...

  4. 基于FPGA的异步FIFO设计

    今天要介绍的异步FIFO,可以有不同的读写时钟,即不同的时钟域.由于异步FIFO没有外部地址端口,因此内部采用读写指针并顺序读写,即先写进FIFO的数据先读取(简称先进先出).这里的读写指针是异步的, ...

  5. [na]出口选路pbr小实验视频

    什么是策略路由? 一般都是部署在出口路由器,用于路径强制分发的, 优先级高于路由表. 策略路由小实验视频 这个是读书时候录的一个策略路由小实验

  6. Mvc4 Layout布局与页面SEO信息title,keyword,description

    工作已经五个年头了,在进入工作岗位时最初在.net 2.0平台一直到现在的.net 4.0平台下,开发了不少的winform.webform项目:五年的工作时间,在公司主持开发和维护了不少的电子商务w ...

  7. 【转】PowerDesigner表结构和字段大小写转换

    [转自]http://blog.csdn.net/xysh1991/article/details/8016192 使用方法:进入PowerDesigner,打开一个PDM,在菜单栏找到:Tools ...

  8. fileupload的乱码解决

    解决方法就是这段代码,其中item是fileupload中的FileItem String value = new String(item.getString().getBytes("ISO ...

  9. LeetCode: Combination Sum II 解题报告

    Combination Sum II Given a collection of candidate numbers (C) and a target number (T), find all uni ...

  10. jquery 给每个li增加事件

    <ul id = "list-unstyled"> <li>aaa</li> <li>bbb</li> <li&g ...