例如,如果您有 7 个面板并且指定facet_wrap(~model, nrow = 3)
ggplot 将默认为 3x3x1 布局。是否可以让 ggplot 执行 3x2x2(或 2x2x3 等)?
我正在使用ggplot
包含颜色条的多面图。我想将颜色条缩放到多面图的大小。按照 @AllanCameron 在这篇文章中关于单个图的想法并调整函数以考虑条带大小和图之间的空间,我能够正确计算出图例的大小。因此,无论ncol
、panel.spacing.y
或 ,图例的大小都被正确指定。strip.text.x
。
但是,默认情况下,图例位于两个没有条带的图之间的中心。到目前为止,通过legend.position
或调整图例并不能帮助正确指定它。如何将图例与图表顶部(即条带顶部)正确对齐(有关预期输出,请参阅右侧的图)?legend.justification
我仅在右侧图表中将图例对齐到顶部,而没有使用外部图形程序调整大小。因此,虽然左侧图表中的图例高度看起来太小,但实际上尺寸还不错。
library(ggplot2)
df <- expand.grid(
x = c(1, 2, 3),
y = c(1, 2, 3),
g = c("one", "two", "three", "four")
)
set.seed(1)
df$v <- runif(nrow(df), min = 0, max = 1)
make_fullsize <- function() structure("", class = "fullsizebar")
ggplot_add.fullsizebar <- function(obj, g, name = "fullsizebar") {
h <- ggplotGrob(g)$heights
panel <- which(grid::unitType(h) == "null")
panel_height <- unit(1, "npc") - …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Apache Solr 并使用以下查询进行搜索
http://Siteurl:8080/solr/metro/select?q=*:*&rows=0&wt=json&indent=true&facet=true&facet.field=Make
Run Code Online (Sandbox Code Playgroud)
但结果让我们假设我在制造领域有“福特嘉年华”。我得到两个结果而不是一个,如下所示:
Ford => 21
Fiesta => 21
Run Code Online (Sandbox Code Playgroud)
它是按空间分隔字段。
我想要它像
Ford Fiesta => 21
Run Code Online (Sandbox Code Playgroud)
请让我知道这样做的有效方法。
谢谢
我正在创建一个搜索应用程序,它集中使用Solr(5.2.1)分面功能.一个要求是限制指定字段的前缀返回的facet数.
标准的Solr查询语法适用于单个前缀值:
/select?q=*%3A*&rows=0&wt=json&indent=true&facet=true&facet.field=DocumentKind&f.DocumentKind.facet.prefix=faq
Run Code Online (Sandbox Code Playgroud)
输出:
"facet_counts": {
"facet_queries": {},
"facet_fields": {
"DocumentKind": {
"faq": 1523
}
...
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我必须使用多个前缀限制字段上的facet时,这不起作用:
/select?q=*%3A*&rows=0&wt=json&indent=true&facet=true&facet.field=DocumentKind&f.DocumentKind.facet.prefix=manual&f.DocumentKind.facet.prefix=faq
Run Code Online (Sandbox Code Playgroud)
我预计它会返回这样的东西:
"facet_counts": {
"facet_queries": {},
"facet_fields": {
"DocumentKind": {
"faq": 1523,
"manual": 2366
}
...
Run Code Online (Sandbox Code Playgroud)
但它提供与以前相同的输出.
在上面的例子中,我匹配整个facet值,但在实际使用情况下,我真的必须匹配前缀.为简洁起见,我展示了这个例子.
我可以在我的应用程序中对此进行过滤,但Solr返回的数据大小非常重要.
我使用该rbindlist()
函数尝试合并两个融化的数据帧(means_melt
和means_melt_50
).我想知道它为什么会出现数据中断?我是否可以使用整个列表,因为我最终打算创建两个图表,每个图表有5组数据(按变量分组),并使用facet_grid()
.我希望这两个图表基于"准确度"分开.
> compiled_means <- list(means_melt, means_melt_50)
> rbindlist(compiled_means, use.names = TRUE, fill=FALSE, idcol = NULL)
Divisions Accuracy variable value
1: 1 0 mean20 16
2: 2 0 mean20 20
3: 3 0 mean20 21
4: 4 0 mean20 17
5: 5 0 mean20 20
---
196: 16 50 mean_2 2
197: 17 50 mean_2 2
198: 18 50 mean_2 2
199: 19 50 mean_2 4
200: 20 50 mean_2 3
Run Code Online (Sandbox Code Playgroud)
如果有人能够更有效地格式化数据,以便将其放入我想要的图表中,我很高兴听到建议.我不确定我正在服用的路线是否有效或啰嗦......
我在Wordpress中使用Algolia搜索,我正在尝试创建一个允许用户根据数值范围过滤结果的方面.问题是我需要获得许多属性的总和以进行比较.
例如,假设我有以下数据:
{
"paid_staff_male": 24,
"paid_staff_female": 21,
"paid_staff_other": 2
}
Run Code Online (Sandbox Code Playgroud)
如何创建一个facet小部件,允许用户使用最小到最大滑块,或者使用最小和最大两个输入来根据总付费人员过滤结果?
因此,在上面的例子中,这篇文章共有47名付薪员工.我如何生成一个如下所示的构面/过滤器:
Paid Staff
0 <--[40]---------[500]--------------> 1000
Run Code Online (Sandbox Code Playgroud)
...或这个:
Paid Staff
Min Max
[__40___] - [__500__]
Run Code Online (Sandbox Code Playgroud)
以下是我的facets当前在我的instantsearch.js文件中的外观:
search.addWidget(
instantsearch.widgets.menu({
container: '#some-facet',
attributeName: 'some_attribute',
sortBy: ['isRefined:desc', 'count:desc', 'name:asc'],
templates: {
header: '<h3 class="widgettitle">Facet Title</h3>'
}
})
);
Run Code Online (Sandbox Code Playgroud)
在"attributeName"下,我需要返回"paid_staff_male","paid_staff_female"和"paid_staff_other"的总和.
我需要这个:
attributeName: sum('paid_staff_male', "paid_staff_female", "paid_staff_other"),
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激 :)
我正在使用带有facet_wrap的gglot绘制一些数据。不同方面的尺寸差异很大(0.2与2000)。
我绘制geom_bar并在该栏上方添加具有相同值的geom_text。现在有一个问题。geom_text值用于标题下的“大”栏。
我看到两个可能的解决方案,但我都无法实现。
切换geom_text位置,以在内部绘制大条形图。这可以通过aes的调整来完成。但是对于每个方面,切换点都必须不同。
我想将y轴缩放到110%,所以文本有空间。但是我不想手动将其放到我的程序中,因为情节是自动完成的。
library(ggplot2)
testdata <- data.frame(a = c(0.1,0.2,0.3, 4,5,6, 7000,8000,9000),
b = c('a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c' ),
c = c('aa', 'bb', 'cc', 'aa', 'bb', 'cc', 'aa', 'bb', 'cc'))
ggplot(testdata, aes(x = c, y = a)) +
geom_bar(stat = 'identity') +
geom_text(aes(label = a), vjust = -1) +
facet_wrap(~b, ncol=1, scales = 'free_y')
Run Code Online (Sandbox Code Playgroud) 我尝试使用 label_parsed 将表达式放入构面标签中,但没有成功:
library(ggplot2)
mpg3 <- mpg
levels(mpg3$drv)[levels(mpg3$drv)=="4"] <- "4^{wd}"
levels(mpg3$drv)[levels(mpg3$drv)=="f"] <- "- Front %.% e^{pi * i}"
levels(mpg3$drv)[levels(mpg3$drv)=="r"] <- "4^{wd} - Front"
ggplot(mpg3, aes(x=displ, y=hwy)) + geom_point() +
facet_grid(. ~ drv, labeller = label_parsed)
Run Code Online (Sandbox Code Playgroud)
我得到的图缺少表达式 - 方面标签包含 drv 变量的原始级别。
如果我输入,levels(mpg3$drv)
我会得到character(0)
。