标签: facet-grid

在ggplot2 facet_grid中旋转切换的facet标签

我想使用facet_grid将一些条形图绘制在彼此之上:

library(ggplot2)

df <- group_by(mpg, manufacturer) %>%
  summarise(cty = mean(cty), hwy = mean(hwy)) %>%
  ungroup()

df <- melt(df, id.vars = "manufacturer")

ggplot() +
  geom_bar(data =df, aes(x = variable, y = value), stat = "identity") +
  facet_grid(manufacturer ~ ., switch = "y")
Run Code Online (Sandbox Code Playgroud)

我使用switch参数ggplot2::facet_grid()来让facet标签显示在y轴而不是每个facet的顶部.问题是刻面标签是垂直绘制的,因此会被裁剪.有没有办法水平绘制facet -labels?到目前为止,我发现的所有问题仅与旋转x轴标签有关,而不是与刻面标签有关.

plot r ggplot2 facet-grid

31
推荐指数
1
解决办法
1万
查看次数

Draw Lines between Facets of facet_grid

Intro

I want to draw lines between a faceted ggplot. The main goal is to connect those measurements with a line which we want to test against. So basically I want to insert some kind of significance bars inside and between the facets of a ggplot boxplot (or any kind of plot for that matter).

Research

ggsignif

I know that there is ggsignif package which does this for all non faceted plots. There are answers which try to circumvent this …

plot r ggplot2 gtable facet-grid

11
推荐指数
2
解决办法
392
查看次数

R:ggplot2:facet_grid:如何在少数(不是全部)标签中包含数学表达式?

我遇到了困难ggplot2.我阅读了大部分相关帖子,尝试了一些但没有找到任何真正的解决方案.

我想在我的标签数学表达式facet_gridsggplot2.

  • 在原始文件中,我不能写名称μg.L-1
  • 在标题和轴中我可以做到,例如 qplot(day, activity, data=a) +xlab(expression("100 µg "*.L^"-1"*""))::这很好用.
  • 我该如何处理facet_labels?我可以设置级别并重命名标签因子,但不考虑表达式,例如:

    levels(a$group) <- c("control", expression("100 µg "*.L^"-1"*""))

    qplot(…, facets=~group)

结果:

方面1的标签写在图表上:控制

方面2的标签写在图表上:"100μg" .L ^" - 1" ""......

我不希望这样.

我不想使用,facet_grid(.~group, labeller=label_bquote(…))因为我不希望我的所有标签都遵循相同的表达方式.我想手动逐个编辑标签...我尝试用bquote(…)而不是expression(…)但同样的坏结果发生了

有人对此有任何线索吗?


一个例子:我定义了一个数据帧:

activity<- as.numeric(c("44","41","48","43","42","45","44","39", "47", "68", "88", "57"))
group<-c("first","first","first","first","first","first",
         "second","second","second","second","second","second")
day<- c("0", "0", "0", "20","20", "20","0", "0", "0", "20","20", "20" )
a<-data.frame(activity, group, day)
Run Code Online (Sandbox Code Playgroud)

我的情节:

require (ggplot2) 
Run Code Online (Sandbox Code Playgroud)

qplot(day, activity, facets=.~group, data=a, ylim=c(25,90))

在此输入图像描述

我想更改构面标签和y轴的名称:

levels(a$group)<- c("control", …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 facet-grid

10
推荐指数
2
解决办法
4380
查看次数

facet_grid 中的自由色阶

假设我有以下数据框:

# Set seed for RNG
set.seed(33550336)

# Create toy data frame
loc_x <- c(a = 1, b = 2, c = 3)
loc_y <- c(a = 3, b = 2, c = 1)
scaling <- c(temp = 100, sal = 10, chl = 1) 

df <- expand.grid(loc_name = letters[1:3], 
                  variables = c("temp", "sal", "chl"), 
                  season = c("spring", "autumn")) %>% 
  mutate(loc_x = loc_x[loc_name],
         loc_y = loc_y[loc_name],
         value = runif(nrow(.)),
         value = value * scaling[variables])
Run Code Online (Sandbox Code Playgroud)

看起来像,

# > head(df)
#   loc_name …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 facet-grid

9
推荐指数
1
解决办法
1447
查看次数

Seaborn中FacetGrid.map和FacetGrid.map_dataframe有什么区别?

Seaborn 文档对这些差异非常不清楚,我无法弄清楚它们。看起来它们的功能即使不完全相同,也非常相似。

\n

seaborn.FacetGrid.map

\n

seaborn.FacetGrid.map_dataframe

\n

具体有什么区别,什么时候使用其中一种?关于seaborn的文档map_dataframe说“与map方法不同,这里使用的函数必须\xe2\x80\x9cunderstand\xe2\x80\x9d Pandas对象”。这是map_dataframe 与map 文档中的唯一区别。如果不是数据帧,那么什么样的对象会被发送到地图中的函数,为什么它很重要?我也不太理解color目标函数必须接受的论点。该论证中包含哪些信息color

\n

python seaborn facet-grid

9
推荐指数
1
解决办法
3761
查看次数

如何在seaborn catplot中旋转xticklabel

我无法在 Seaborn/Matplotlib 中旋转我的 xlabel。我尝试了很多不同的解决方案,但无法修复它。我在 stackoverflow 上看到了很多相关问题,但它们对我不起作用。

我当前的绘图如下所示,但我希望 xlabel 旋转 90 度。

在此输入图像描述

@staticmethod
def plotPrestasjon(plot):
    sns.set(style="darkgrid")
    ax = sns.catplot(x="COURSE", y="FINISH", hue="COURSE",
                     col="BIB#", data=plot, s=9, palette="Set2")
    ax.set(xlabel='COURSES', ylabel='FINISH (sec)')
    plt.show()
Run Code Online (Sandbox Code Playgroud)

我努力了:

ax.set_xticklabels(ax.get_xticklabels(), rotation=90)
Run Code Online (Sandbox Code Playgroud)

但这无法生成情节。我有什么想法可以解决它吗?

python matplotlib seaborn facet-grid catplot

9
推荐指数
1
解决办法
1万
查看次数

是否可以仅更改 1 个方面标题的对齐方式

假设我有一个像这样的多面 ggplot:

data(iris)
ggplot(iris, aes(x = Petal.Width, y = Sepal.Length)) +
  facet_grid(. ~ Species) +
  geom_point()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

题:

是否可以仅将第一个方面标签(“setosa”)与左侧对齐,但将其他方面保持在中央?

我对直接没有任何运气ggplot,所以我尝试转换为 gtable(下面的代码),我可以看到我可能需要修改的元素是 tableGrb #13 - strip-t-1,但我不确定怎么做。我尝试将gt$layout$lgt$layout$r值更改为 4(原为 5),但这会将标题完全移出构面。

pl <- ggplot(iris, aes(x = Petal.Width, y = Sepal.Length)) +
  facet_grid(. ~ Species) +
  geom_point()
gt <- ggplotGrob(pl)

gt$layout[gt$layout$name == 'strip-t-1', c('l', 'r')] <- c(4, 4) # my attempt
grid.newpage()
grid.draw(gt)
Run Code Online (Sandbox Code Playgroud)

有谁知道这是否可能?

r ggplot2 facet-grid ggtext

8
推荐指数
2
解决办法
299
查看次数

使用facet时,ggplot2在面板边框外部

我想在多面图的外部周围有一个边框,但没有将图内的面板分开的线。问题是panel.border在构面上的每个面板周围绘制边框,而没有选择在整个图上仅具有边框。或者,您可以将内部分隔线设置为“白色”,但将外部边界保持为“黑色”。

这是我的代码:

mtcars
mtcars$manufacturer=rownames(mtcars)
ggplot(mtcars, aes(x=manufacturer, y=mpg,fill=factor(gear,levels=c("3","4","5"))))+
  geom_bar(stat="identity",position="dodge",colour="black")+
  facet_grid(~cyl,scales = "free_x",space = "free_x",) +
  theme(axis.text.x = element_text(angle = 45,size=12,colour="Black",vjust=1,hjust=1),
    strip.background = element_blank(),
    strip.placement = "inside",
    strip.text = element_text(size=15),
    legend.position=c(0.9,0.8),
    legend.title=element_blank(),
    legend.text=element_text(size=15),
    panel.spacing = unit(0.2, "lines"), 
    panel.background=element_rect(fill="white"),
    panel.border=element_rect(colour="black",size=1),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank())
Run Code Online (Sandbox Code Playgroud)

结果:带有内部边界的多面图

在此处输入图片说明

所需的输出(用油漆编辑):无内线的多面图

在此处输入图片说明

我想要从中删除内部线条的实际数据图如下所示:

带有内部边界的实际数据图需要删除

r border ggplot2 facet-grid

7
推荐指数
1
解决办法
5058
查看次数

在特定位置绘制一条水平线/注释Seaborn中的Facetgrid

A通过以下方式在Seaborn中制作了Facetgrid的箱线图

# Import the dataset
tips = sns.load_dataset("tips")

# Plot using Facegrid, separated by smoke
plt.style.use('ggplot')
g = sns.FacetGrid(tips, col="smoker", size=5, aspect=1.5)
g.map(sns.boxplot, "sex", "total_bill", palette='viridis', order=['Male', 'Female'])
plt.show()
Run Code Online (Sandbox Code Playgroud)

我现在想在每个图中绘制不同的水平线。例如,一条水平线(坐标为(0,10))在左侧图中,而另一条水平线(坐标为(0,30))在右侧图中。

我该怎么做呢?

python seaborn facet-grid

7
推荐指数
3
解决办法
9339
查看次数

ggplot2 facet_grid 与 facet 标题

是否有一种规范的方法可以在其中添加方面标题facet_grid?或者一种特定行标签的方法facet_wrap?(没有 geom_text, geom_label, 或 grob 操作。)

考虑:

dat <- data.frame(rowInd = paste0("R", c(1, 2, 2, 3, 3, 3)), colInd = paste0("C", c(1, 1, 2, 1, 2, 3)),
                  facetName = c("1-10", "60-70", "80-90", "100-110", "120-130", "140-150"), val=1:6)
dat
#   rowInd colInd facetName val
# 1     R1     C1      1-10   1
# 2     R2     C1     60-70   2
# 3     R2     C2     80-90   3
# 4     R3     C1   100-110   4
# 5     R3     C2   120-130   5
# …
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2 facet-wrap facet-grid

7
推荐指数
1
解决办法
414
查看次数

标签 统计

facet-grid ×10

ggplot2 ×7

r ×7

python ×3

seaborn ×3

plot ×2

border ×1

catplot ×1

facet ×1

facet-wrap ×1

ggtext ×1

gtable ×1

matplotlib ×1