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. Linux内核中锁机制之信号量、读写信号量

    在上一篇博文中笔者分析了关于内存屏障.读写自旋锁以及顺序锁的相关内容,本篇博文将着重讨论有关信号量.读写信号量的内容. 六.信号量 关于信号量的内容,实际上它是与自旋锁类似的概念,只有得到信号量的进程 ...

  2. Python2 long() 函数

    描述 long() 函数将数字或字符串转换为一个长整型. 语法 long() 函数语法: class long(x, base=10) 参数 x -- 字符串或数字. base -- 可选,进制数,默 ...

  3. 修改tmp的临时目录的地址

    https://nkcoder.github.io/2014/04/11/jetty-as-linux-service/ 我们在启动服务的时候添加-Djava.io.tmpdir=/data/jett ...

  4. js的一些代码…

    获取请求的参数 例:VisitPhoto.aspx?imgurl=http://s.cn.bing.net/az/hprichbg/rb/BottlenoseDolphinSurface_ZH-CN1 ...

  5. [Codility] CountTriangles

    A zero-indexed array A consisting of N integers is given. A triplet (P, Q, R) is triangular if it is ...

  6. linux下查看doc在线帮助文件

    常看到某个linux下的工具,有带有doc结尾的文件,但是新手不知道如何查看. 我一番查找,终于知道了... 比如:ipython这个软件,在ubuntu里面,有ipython-doc的一个包. 安装 ...

  7. ssh:Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open

    最近,用ssh连接github时,突然提示“Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open”,并且断开连接. 仔细阅读了一下ssh文档和这句 ...

  8. [na]交换技术知识点-提纲

    vlan - trunk - vtp(vtp prune) stp portfast rootgurd bpduguard bpdufilter uplinkfast backbonfast loop ...

  9. [MySQL] MySQL中关于外键报错的解决和建议

    一.缘由 今天在恢复从库和主库不同步的数据时,看到关于外键的报错. ERROR 1451 (23000): Connot delete or update a parent row: a foreig ...

  10. CCNotificationCenter(一)

    const std::string testsName[MAX_COUNT] = { "Bug-350", "Bug-422", "Bug-458&q ...