标签: facet-grid

facet_grid中有多行

我有一个大致如下所示的数据集:

names = tibble(NAME_2=c("Location1","Location2","Location3","Location4"))
dates = tibble(date = seq(as.Date("2015-01-01"), as.Date("2016-12-31"), by="days"))
types = tibble(type = c("comment","post"))
df <- merge(names,dates)
df <- merge(df, types)
zero <- seq(from=0, to=200, by=1)
df$n <- sample(zero, size=nrow(df), replace=TRUE)
Run Code Online (Sandbox Code Playgroud)

产生像这样的构面图:

ggplot(data = df, aes(x = date, y = n)) +
  geom_line() +
  facet_grid(type ~ NAME_2, scale = "free_y")
Run Code Online (Sandbox Code Playgroud)

构面图

是否有可能出现类似ncol=2in的行为,facet_wrap以便Location3和Location4出现在Location1和Location2下面?实际上,我大约有12个位置,这使得无法在一页上进行打印并且仍然清晰可辨。

r ggplot2 facet-wrap facet-grid

4
推荐指数
1
解决办法
3642
查看次数

Seaborn FacetGrid PointPlot标签数据点

给定以下内容:

import seaborn as sns
attend = sns.load_dataset("attention")
sns.set_style("whitegrid", {'axes.grid' : False,'axes.edgecolor':'none'})
g = sns.FacetGrid(attend, col="subject", col_wrap=5,
size=1.5, ylim=(0, 10))
ax = g.map(sns.pointplot, "solutions", "score", scale=.7)
Run Code Online (Sandbox Code Playgroud)

我想在每行上标记单个数据点(用值标签代替点)。在我仅通过MatPlotLib创建的另一个绘图中,这是这样完成的:

for i, text in enumerate(ind):
    a.annotate(str(y[i])[:-2], xy=(ind[i], y[i]),fontsize=6, color=c, 
                bbox=dict(pad=.9,alpha=1, fc='white',color='none'),va='center', ha='center',weight='bold')
Run Code Online (Sandbox Code Playgroud)

但是,由于没有定义ind,所以我不确定这将如何工作。

python seaborn facet-grid

4
推荐指数
1
解决办法
1845
查看次数

ggplot2 facet 标签 - 第二行不显示

我有一个脚本,用于生成带有多行条带文本的多面图。但这不再起作用了。下面是一个 MWE,应该从中解析条带文本,例如"bold(A)\nreally~long~extra"

一个
很长的额外

正如您通过调试功能看到的那样,第二行被切断了。我什至增加了利润,但无济于事......

任何想法是什么问题?

exmpl = data.frame(a = 1:100,
               b = rep(1:5, 20),
               f = factor(rep(LETTERS[1:5], each = 20))) %>% 
  as_tibble() %>% 
  mutate(f2 = paste0("bold(",f, ")\nreally~long~extra"))

ggplot(exmpl, aes(x = b, y = a)) +
  facet_grid(. ~ f2, labeller = label_parsed) +
  geom_point() +
  theme(strip.text.x = element_text(size = 10, hjust = 0, margin = margin(.5, 0, .5, 0, "cm"), debug = T))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

编辑:

当我们这样做时,我只是想出了这个解决方法,因为我之前使用的解决方案label_bquote()不再有效。请看看另一个问题,也许你也可以帮我解决这个问题?

label r ggplot2 facet-grid ggtext

4
推荐指数
1
解决办法
178
查看次数

如何避免Seaborn FacetGrid中的空网格

我有一个个人特征的数据框,例如学校成绩,年龄,体重和身高。我想调查这些数据在海洋中的密度分布Facetgrid

import pandas as pd
import seaborn as sns
import random
import matplotlib.pyplot as plt

# creation of artifical data
random.seed = 10
high = [random.uniform(3.0,6.0) for i in range(50)]
uni = [random.uniform(1.0, 4.0) for i in range(50)]
math = [random.uniform(1.0, 6.0) for i in range(50)]
bio = [random.uniform(1.0, 6.0) for i in range(50)]
history = [random.uniform(1.0, 6.0) for i in range(50)]
age = [random.randint(15,45) for i in range(50)]
height = [random.randint(150,210) for i in range(50)]
weight = …
Run Code Online (Sandbox Code Playgroud)

python seaborn facet-grid

3
推荐指数
1
解决办法
955
查看次数

如何用 ggplot 删除空面?

我正在使用facet_grid 与ggplot 一起执行geom_point,但是我的facet 为空,并且我不知道如何删除它们或如何构建我的数据以不具有空facet?

这是我的数据的示例:

data = data.frame(
  F1=c(0.69, 0.59, 0.6 , 0.52, 0.56, 0.58, 0.52, 0.53, 0.41, 0.57,
       0.54, 0.38, 0.48, 0.31, 0.35,
       0.43, 0.36, 0.38, 0.23, 0.48, 0.55, 0.48, 0.49, 0.46, 0.49,
       0.52, 0.48, 0.48, 0.35, 0.5 ,
       0.51, 0.58, 0.51, 0.59, 0.51, 0.57, 0.5 , 0.59, 0.47, 0.51,
       0.61, 0.58, 0.61, 0.59, 0.61, 0.67, 0.6 , 0.59, 0.47, 0.61,
       0.61, 0.52, 0.53, 0.60,0.62, 0.53, 0.62, 0.63, 0.24, 0.38),
  F2 = c(0.01, 0.01, 0.02, 0.01, 0.01, 0.01, 0.01, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 facet-wrap facet-grid

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

如何增加facet_grid中ggplot箱线图的内边距?

我正在设置箱线图以在 ggplot2 中呈现这些内容facet_grid,并且我想增加内部边距。

不幸的是,我无法增加到面框的距离。

在此输入图像描述

如何增加蓝色箭头所示的内边距(左和右)?

在此输入图像描述

require(ggplot2)
dat <- rbind(data.frame(approach=1,product=1,value=seq(1,20,0.5)), 
             data.frame(approach=1,product=2,value=seq(5,15,0.3)), 
             data.frame(approach=1,product=3,value=seq(5,17,0.2)), 
             data.frame(approach=2,product=1,value=seq(1,13,0.3)), 
             data.frame(approach=2,product=2,value=seq(3,18,0.5)), 
             data.frame(approach=2,product=3,value=seq(4,25,0.7)), 
             data.frame(approach=3,product=1,value=seq(1,15,0.6)), 
             data.frame(approach=3,product=2,value=seq(3,16,0.5)), 
             data.frame(approach=3,product=3,value=seq(1,10,0.1)))

gg1 <- ggplot(dat, aes(group =product, y = value)) + 
  geom_boxplot() + 
  ylab("size (cm)")+ 
  theme(panel.spacing = unit(0.1, 'lines')) + 
  theme(plot.background = element_rect(fill ="lightgrey" )) +
  scale_fill_grey(start = 0.0, end = 1) +
  theme_bw()+ 
  xlab("") +   
  facet_grid(cols=vars(approach)) +
  theme(axis.text.x = element_text(colour="black")) + 
  theme(axis.text.y=element_text(colour="black"))+ 
  theme(panel.spacing=unit(0,"lines")) + 
  guides(fill=guide_legend(title="Products")) + 
  theme(plot.background = element_rect(fill ="lightgrey" ))

gg1
Run Code Online (Sandbox Code Playgroud)

另外,它对于离散尺度如何工作?

require(ggplot2)
dat <- rbind(data.frame(approach=1,product=1,value=seq(1,20,0.5)), 
             data.frame(approach=1,product=2,value=seq(5,15,0.3)), 
             data.frame(approach=1,product=3,value=seq(5,17,0.2)), 
             data.frame(approach=2,product=1,value=seq(1,13,0.3)), 
             data.frame(approach=2,product=2,value=seq(3,18,0.5)), 
             data.frame(approach=2,product=3,value=seq(4,25,0.7)), …
Run Code Online (Sandbox Code Playgroud)

r margins ggplot2 facet-grid

3
推荐指数
1
解决办法
2431
查看次数

如何在 Seaborn FacetGrid 中设置刻度?

我有这样的代码,我想在 X 轴上添加刻度,这样我就可以更好地看到超过 150 的值对应的内容。我的 X 值的范围是从 178 到 17639。

bins = np.linspace(df.days_with_cr_line.min(), df.days_with_cr_line.max(), 32)

g = sns.FacetGrid(df, col="loan_status", hue="loan_status", palette=['#8856a7', '#f03b20'], col_wrap=2)
g.map(plt.hist, 'days_with_cr_line', bins=bins, ec="k")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我努力了

g.set_xticks(np.arange(0,18000,500), minor=True)
AttributeError: 'FacetGrid' object has no attribute 'set_xticks'
Run Code Online (Sandbox Code Playgroud)

for axes in g.axes.flat:
    _ = axes.set_xticks(axes.get_xticks(range(0,18000)))
Run Code Online (Sandbox Code Playgroud)

这将删除刻度标签而不添加任何刻度。

python seaborn facet-grid xticks

3
推荐指数
1
解决办法
7651
查看次数

如何使用分类轴在条形图上叠加数据点

目标:我试图使用 Seaborn 在具有多个分组条形图的图中显示各个数据点。

问题:我尝试使用条形图的猫图和各个数据点的猫图来完成此操作。但是,这会生成 2 个数字:一个包含条形图,另一个包含各个数据点。

问题:有没有办法使用 Seaborn 在同一图中将各个数据点与条形图一起显示?

这是我的代码生成两个单独的数字:

import seaborn as sns
tips = sns.load_dataset("tips")

g = sns.catplot(
    x="sex", 
    y="total_bill", 
    hue="smoker", 
    row="time", 
    data=tips, 
    kind="bar", 
    ci = "sd", 
    edgecolor="black",
    errcolor="black",
    errwidth=1.5,
    capsize = 0.1,
    height=4, 
    aspect=.7,
)

g = sns.catplot(
    x="sex", 
    y="total_bill", 
    hue="smoker", 
    row="time", 
    data=tips, 
    kind="strip", 
    height=4, 
    aspect=.7,
)
Run Code Online (Sandbox Code Playgroud)

输出:

我的输出

问题:有没有办法使用 Seaborn 在同一图中将各个数据点与条形图一起显示?

python bar-chart seaborn facet-grid stripplot

3
推荐指数
1
解决办法
4422
查看次数

将带有facet_grid的ggplot2对象的标题移动到中间

我有以下数据框:

              ML Algorithm Option  Coeff  Lower  Upper
1  Random Forest    Algo_1  Opt_1  0.021 -0.124  0.166
2          Lasso    Algo_1  Opt_1  0.130 -0.012  0.273
3        XGBoost    Algo_1  Opt_1 -0.052 -0.211  0.108
4     Neural Net    Algo_1  Opt_1  0.114 -0.009  0.238
5  Random Forest    Algo_1  Opt_2  0.116 -0.033  0.264
6          Lasso    Algo_1  Opt_2  0.158  0.019  0.297
7        XGBoost    Algo_1  Opt_2 -0.260 -0.508 -0.012
8     Neural Net    Algo_1  Opt_2  0.035 -0.100  0.170
9  Random Forest    Algo_2  Opt_1  0.028 -0.117  0.172
10         Lasso    Algo_2  Opt_1  0.134 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 facet-grid

3
推荐指数
1
解决办法
62
查看次数

左对齐每个情节子图的标题

我有一组由多面包裹的情节表达的 barplots ,每个都有一个标题。如何将每个子图的标题与其绘图窗口的左侧左对齐? 在此输入图像描述

import lorem
import plotly.express as px
import numpy as np
import random

items = np.repeat([lorem.sentence() for i in range(10)], 5)
response = list(range(1,6)) * 10
n = [random.randint(0, 10) for i in range(50)]

(
    px.bar(x=response, y=n, facet_col=items, facet_col_wrap=4, height=1300)
    .for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1]))
    .for_each_xaxis(lambda xaxis: xaxis.update(showticklabels=True))
    .for_each_yaxis(lambda yaxis: yaxis.update(showticklabels=True))
    .show()
)
Run Code Online (Sandbox Code Playgroud)

我尝试添加,.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1], x=0))但结果是: 在此输入图像描述

python plotly facet-grid plotly-python

3
推荐指数
1
解决办法
812
查看次数