- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框,其中包含来自 20 多个国家/地区的 20 多种产品中每种产品的订单数据。我已使用 ggplot2
将其放在突出显示表中使用与此类似的代码:
require(ggplot2)
require(reshape)
require(scales)
mydf <- data.frame(industry = c('all industries','steel','cars'),
'all regions' = c(250,150,100), americas = c(150,90,60),
europe = c(150,60,40), check.names = FALSE)
mydf
mymelt <- melt(mydf, id.var = c('industry'))
mymelt
ggplot(mymelt, aes(x = industry, y = variable, fill = value)) +
geom_tile() + geom_text(aes(fill = mymelt$value, label = mymelt$value))
variable
) 将被排序为
all regions
,
americas
,然后
europe
并且 x 轴 (
industry
) 将被订购
all industries
,
cars
和
steel
.事实上,x 轴已经按字母顺序排序,但如果不是这样,我不知道如何实现这一点。
factor
的电话中迷失了方向。 ,
levels
,
sort
,
order
和
with
.
> str(mymelt)
'data.frame': 340 obs. of 3 variables:
$ Industry: chr "Animal and vegetable products" "Food and beverages" "Chemicals" "Plastic and rubber goods" ...
$ variable: Factor w/ 17 levels "Other areas",..: 17 17 17 17 17 17 17 17 17 17 ...
$ value : num 0.000904 0.000515 0.007189 0.007721 0.000274 ...
with
语句不会产生按字母顺序排列的级别。
> with(mymelt,factor(variable,levels = rev(sort(unique(variable)))))
[1] USA USA USA
[4] USA USA USA
[7] USA USA USA
[10] USA USA USA
[13] USA USA USA
[16] USA USA USA
[19] USA USA Canada
[22] Canada Canada Canada
[25] Canada Canada Canada
[28] Canada Canada Canada
[334] Other areas Other areas Other areas
[337] Other areas Other areas Other areas
[340] Other areas
levels()
它似乎显示了同样的事情:
[1] "Other areas" "Oceania" "Africa"
[4] "Other Non-Eurozone" "UK" "Other Eurozone"
[7] "Holland" "Germany" "Other Asia"
[10] "Middle East" "ASEAN-5" "Singapore"
[13] "HK/China" "Japan" "South Central America"
[16] "Canada" "USA"
最佳答案
另一种可能性是使用 fct_reorder 来自 预测 图书馆。
library(forecast)
mydf %>%
pivot_longer(cols=c('all regions', 'americas', 'europe')) %>%
mutate(name1=fct_reorder(name, value, .desc=FALSE)) %>%
ggplot( aes(x = industry, y = name1, fill = value)) +
geom_tile() + geom_text(aes( label = value))
关于r - 在 geom_tile 中对轴标签进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11599023/
我有一个包含 5 列的数据框: N1 mydf$N1 levels(mydf$N1) #[1] "20" "30" "40" "50" "60" "70" "80" "100" "1
自从切换到 ggplot2 2.0.0 后,在 美学< 之外定义瓷砖的 width 和 height 时出现问题。我使用 geom_tile 创建了某种热图,我想在图 block 之间留一点空间,所以
自从切换到 ggplot2 2.0.0 后,在 美学< 之外定义瓷砖的 width 和 height 时出现问题。我使用 geom_tile 创建了某种热图,我想在图 block 之间留一点空间,所以
这个问题在这里已经有了答案: Margin adjustments when using ggplot's geom_tile() (1 个回答) 8年前关闭。 您可以看到一组有水平灰色边缘,而另一组
set.seed(1990) ID ggplot(dataset + , + aes(x=datetime,y= reorder(ID, n),fill=n))+ +
library(tidyverse) ## make data set.seed(3) dat % tbl_df() %>% rownames_to_column('Var1') %>%
使用 geom_tile,我想在每行数据之间放置一条水平线。看起来如果我在美学上使用颜色,它会在水平和垂直方向上放置线条,这不是我想要的。过去,我只是让瓷砖的高度变小,所以它们之间有一些间隔。但是,似
我正在尝试制作一个按 x 轴上的两个离散变量排序的分面 ggplot。问题是我想让垂直相邻的条目都接触。目前,行与行之间存在空间,具体取决于顶部图中与底部图中的因子水平。抱歉,这个可重现的例子有点冗长
我有两个不同的数据框:P1 和 P2。这些数据帧中的每一个都有 3 个不同的列:N1、N2 和一个值 (mean_RMSE)。 N1和N2在15到120之间,对于一条线,N2总是低于N1。 如果我绘制
我试图显示对 2 个调查问题的响应的密度和相关性。每个问题的答案都是因素 1-5,我想制作一个响应组合表的热图。 我的表格是这样的: > table(mydata$v47, mydata$v78)
我有一个数据框,其中包含来自 20 多个国家/地区的 20 多种产品中每种产品的订单数据。我已使用 ggplot2 将其放在突出显示表中使用与此类似的代码: require(ggplot2) requ
我有一个数据框,我想生成一个 geom_tile()从中绘制,但我希望图形的排序不是基于字母顺序而是基于此数据框中的变量。 structure(list(V1 = c("a", "y", "w", "
我有兴趣在 ggplot2 中使用 geom_tile 构建热图,该热图根据某个因素使用不同的渐变高颜色。 下图创建了一个图,其中各个图 block 根据 xy_type 被着色为蓝色或红色,但没有渐
我想创建一个图表来显示每天的工作时间表。我必须处理的数据看起来像这样: dput(head (TiNiSWeek, 3)) structure(list(`04:00` = c(0, 0, 0)
我正在尝试生成 heatmap使用 ggplot 绘图的 geom_tile .我的数据的行数远多于列数。 set.seed(1) df <- data.frame(val=rnorm(100
我用过 geom_tile()用于在同一张图上绘制 3 个变量...... tile_ruined_coop% group_by("bonus","malus","type","coop") %>%
我试过很多次,一个简单的光栅绘图是空的。但是可以绘制子数据框。所以我考虑了 ggplot 中的一些错误?数据框不是很大,大约 10k 行。 df % slice(1:1000) %>% ggp
我堆叠了一个数据框,它显示 group 中每个 id 的 value: df # A tibble: 11 x 3 #> id value group #> #> 1
我需要帮助为 86x86 矩阵分配正确的十六进制颜色代码到 ggplot + geom_tile()。它是一个相关矩阵,我想根据它的值和由 kmeans 聚类生成的类来给它着色。有六种不同的簇/颜色。
假设我有一个像这样的 data.frame: df <- matrix( rnorm(100), nrow = 10) rownames(df) <- LETTERS[1:10] molten <-
我是一名优秀的程序员,十分优秀!