首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >同时使用facet_wrap和geom_tile时改变填充比例

同时使用facet_wrap和geom_tile时改变填充比例
EN

Stack Overflow用户
提问于 2013-06-09 03:54:43
回答 2查看 3.9K关注 0票数 9

在ggplot2中同时使用函数geom_tilefacet_wrap时,如何设置美学fill的不同限制,作为可以在free/free_y/free_x中设置为facet_wrap的选项scales

下面是一个例子来说明这个问题。对于data.frame df中的不同typez的范围可能会非常不同。如果我们使用相同的美学fill限制,z部分中哪一个的值很小,就很难看到细节。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pp <- function (n,r=4) {
    x <- seq(-r*pi, r*pi, len=n)
    df <- expand.grid(x=x, y=x)
    df$r <- sqrt(df$x^2 + df$y^2)
    df$z <- cos(df$r^2)*exp(-df$r/6)
    df
}
tmp <- pp(20)
tmp$type <- rep(1:4,each=nrow(tmp)/4)
tmp$z <- tmp$z*(10^(tmp$type))
ggplot(tmp,aes(x,y))+geom_tile(aes(fill=z))+facet_wrap(~type,scales="free")
EN

回答 2

Stack Overflow用户

发布于 2017-03-21 17:52:42

我知道这是一个老问题,但我最近遇到了同样的问题,并提出了这个解决方案,我想与大家分享一下。诀窍是使用来自geom_tile()nest()在嵌套的数据帧中收集各个tidyr绘图所需的数据集,然后使用purrr包中的map2()函数和一个包装器函数创建各个绘图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(tidyverse)

pp <- function (n,r=4) {
  x <- seq(-r*pi, r*pi, len=n)
  df <- expand.grid(x=x, y=x)
  df$r <- sqrt(df$x^2 + df$y^2)
  df$z <- cos(df$r^2)*exp(-df$r/6)
  df
}
tmp <- pp(20)
tmp$type <- rep(1:4,each=nrow(tmp)/4)
tmp$z <- tmp$z*(10^(tmp$type))

plot_func <- function(df, name) {
  ggplot(data = df, aes(x = x, y = y, fill = z)) +
    geom_tile() +
    scale_fill_continuous(name = name)
}

nested_tmp <- tmp %>% 
  group_by(type) %>% 
  nest() %>% 
  mutate(plots = map2(data, type, plot_func)) 

gridExtra::grid.arrange(grobs = nested_tmp$plots)

嵌套的dataframe包含两个列表列,其中包含数据集和图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> nested_tmp
# A tibble: 4 × 3
     type               data    plots
    <int>             <list>   <list>
  1     1 <tibble [100 × 4]> <S3: gg>
  2     2 <tibble [100 × 4]> <S3: gg>
  3     3 <tibble [100 × 4]> <S3: gg>
  4     4 <tibble [100 × 4]> <S3: gg>    

从这里可以很容易地修改plot_func()来微调绘图。

票数 8
EN

Stack Overflow用户

发布于 2014-09-16 05:12:24

解决这个问题的一种方法是标准化fill变量,这样所有方面的规模都是相似的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(dplyr)
tmp1 <- group_by(tmp,type) # grouping the data by type
tmp2 <- mutate(tmp1, z1 = (z-mean(z))/sd(z)) #groupwise standardization 
ggplot(tmp2,aes(x,y))+geom_tile(aes(fill=z1))+facet_wrap(~type,scales="free")

我希望有像fill=std(z)这样的东西,这样我就不需要手动标准化了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17006251

复制
相关文章
【Vue_05】前端工程化
一、ES6的模块化 1. ES6模块化规范 每个 js 文件都是一个独立的模块 导入模块成员使用 import 关键字 暴露模块成员使用 export 关键字 2. 基本语法 发使用 ex
用户8250147
2021/02/04
5450
【Vue_05】前端工程化
Webpack基本使用
Webpack介绍:主要用于web项目中打包资源进行自动构建,Webpack将所有资源视为JS的模块来进行构建,所以对于CSS,Image等非JS类型的文件,Webpack会使用相应的加载(loader)器来加载成其可识别的JS模块资源,通过配置一些信息,就能将资源进行打包构建,更好地实现前端的工程化 Webpack安装 本地安装: npm install -D webpack -D 实际上是简写 --dev-save 如果你使用Webpack 4+ 版本, 你还需要安装CLI. npm inst
一个淡定的打工菜鸟
2018/12/27
7100
Flow 静态类型检查开发环境搭建
Flow 是 Facebook 出品的,针对 JavaScript 的静态类型检查工具。它可以帮助捕获 JavaScript 开发中的常见错误,而不需要额外地修改原有的代码,比如静态类型转换,空值引用等问题。同时,Flow 为 JavaScript 添加了静态类型的语法标识,这样开发者便可以明确代码中的类型,让其自动地被 Flow 所维护。本文将详细介绍使用 Webpack、ESlint、Babel 与 Flow 集成的开发环境的构建过程。
用户6167509
2020/04/21
1.2K0
入门webpack的最佳实践(基于webpack4.X 5.X)--基础篇
来到这家公司之后,一直在使用webpack,也写了不少笔记,但是都比较零散,现在决定整理一下webpack相关的知识点,由浅入深,方便自己后续查漏补缺,后续会一直更新。
Jou
2022/09/28
4280
入门webpack的最佳实践(基于webpack4.X 5.X)--基础篇
来到这家公司之后,一直在使用webpack,也写了不少笔记,但是都比较零散,现在决定整理一下webpack相关的知识点,由浅入深,方便自己后续查漏补缺,后续会一直更新。
Jou
2022/08/18
6470
入门webpack的最佳实践(基于webpack4.X 5.X)--基础篇
Webpack基本使用
Webpack介绍:主要用于web项目中打包资源进行自动构建,Webpack将所有资源视为JS的模块来进行构建,所以对于CSS,Image等非JS类型的文件,Webpack会使用相应的加载(loader)器来加载成其可识别的JS模块资源,通过配置一些信息,就能将资源进行打包构建,更好地实现前端的工程化 Webpack安装 本地安装: npm install -D webpack -D 实际上是简写 --dev-save 如果你使用Webpack 4+ 版本, 你还需要安装CLI. npm ins
一个淡定的打工菜鸟
2018/09/06
4480
Webpack基本使用
webpack5快发布了,你还没用过4吗?
webpack5 预计会在 2020 年年初发布,之前从 alpha 版本就有关注,本次重点更新在长期缓存,tree shakking 和 es6 打包这块。具体变更可以参考https://github.com/webpack/changelog-v5/blob/master/README.md。
前端森林
2020/04/23
1.6K0
webpack5快发布了,你还没用过4吗?
Webpack 资源管理
静默虚空
2018/01/05
1.7K0
从零开始配置webpack(基于webpack 4 和 babel 7版本)
webpack启动后会从 Entry 里配置的 Module 开始递归解析 Entry 依赖的所有Module.每找到一个Module,就会根据配置的Loader去找出对应的转换规则,对Module进行转换后,再解析出当前的Module依赖的Module.这些模块会以Entry为单位进行分组,一个Entry和其所有依赖的Module被分到一个组也就是一个Chunk。最好Webpack会把所有Chunk转换成文件输出。在整个流程中Webpack会在恰当的时机执行Plugin里定义的逻辑。
胡哥有话说
2019/09/12
6320
深入浅出webpack的最佳实践!
导语 | 本文推选自腾讯云开发者社区-【技思广益 · 腾讯技术人原创集】专栏。该专栏是腾讯云开发者社区为腾讯技术人与广泛开发者打造的分享交流窗口。栏目邀约腾讯技术人分享原创的技术积淀,与广泛开发者互启迪共成长。本文作者是腾讯云前端开发Jou。 自从加入腾讯,作者便一直在使用webpack,因此,本文主要整理一下webpack相关的知识点,由浅入深,后续会一直更新分享,以便对此方面感兴趣的开发者们提供一些经验和帮助。欢迎点击文末「阅读原文」访问腾讯云开发者社区,查看作者作品~ 核心概念 (一)Module
腾讯云开发者
2022/08/31
6720
深入浅出webpack的最佳实践!
Webpack最佳实践
Webpack 可以看做是模块打包机,把解析的所有模块变成一个对象,然后通过入口模块去加载我们的东西,然后依次实现递归的依赖关系,通过入口来运行所有的文件。由于 webpack 只认识js,所以需要通过一系列的 loader 和 plugin 转换成合适的格式供浏览器运行。
gogo2027
2022/10/17
3.3K0
【Vue】各种loader的基本配置与使用
接下来我们需要移除无序列表中的行头前缀。 在src文件夹中创建css文件夹,再从css文件夹中创建index.css文件,并写好样式代码。
坚毅的小解同志的前端社区
2022/12/09
8160
【Vue】各种loader的基本配置与使用
webpack配置React开发环境(上)
Webpack 是一个前端资源加载/打包工具,我们部门的一条主要技术栈就是Webpack+React+ES6+node,虽然之前自己做个人项目也接触好多次Webpack,但是自己并没有研读总结过Web
牧云云
2018/05/02
1.6K0
[javascript]使用babel转换es6语法
babel是将 ES2015+ 语法的 JavaScript 代码编译为能在当前浏览器上工作的代码
唯一Chat
2021/01/06
9900
webpack 学习笔记系列03-babel
babel 是 JavaScript 的编译器,可以将最新 ES 语法的代码轻松转换成任意版本的 JavaScript 代码,其实现原理是先使用 Babylon 解释器将 JavaScript 语法解析成 AST,然后通过遍历处理这颗树实现代码转换。在 babel 中可以通过配置 browserslist 来针对不同的浏览器组合,生成不同的适配代码。
CS逍遥剑仙
2021/01/01
1.7K0
针对 webpack + es6 + react 安装使用及其遇到的问题!
使用node npm进行安装,首先,我先附上webpack.config.js的代码,再进一步使用:
White feathe
2021/12/08
3260
针对 webpack + es6 + react 安装使用及其遇到的问题!
webpack + react + ts + semiDesign +electron
yarn add -D webpack webpack-cli 或者npm install -D webpack webpack-cli
用户4793865
2023/01/12
2.2K0
webpack + react + ts + semiDesign +electron
前端成神之路-vue前端工程化
小结:推荐使用ES6模块化,因为AMD,CMD局限使用与浏览器端,而CommonJS在服务器端使用。 ES6模块化是浏览器端和服务器端通用的规范.
海仔
2021/03/20
8540
【Webpack】Webpack4.x 常用操作 | 案例 | 相关构建工具
当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要(依赖)的每个模块(modules),然后将所有这些模块打包成一个或多个 assets。
前端修罗场
2023/10/07
2930
【Webpack】Webpack4.x 常用操作 | 案例 | 相关构建工具
Vue 07.webpack
webpack 是前端的一个项目构建工具,它是基于 Node.js 开发出来的一个前端工具;
LittlePanger
2020/04/14
7910

相似问题

Grails域:如何访问父域数据?

211

Grails,如何在域类中访问当前?lang

21

grails - afterDelete()访问域属性

11

grails动态访问域对象

20

如何在GRAILS中访问src/java中的域类?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文