我的数据:
a <- sample(1:5, 100, replace = TRUE)
b <- sample(1:5, 100, replace = TRUE)
c <- sample(1:10, 100, replace = TRUE)
d <- sample(1:40, 100, replace = TRUE)
df <- data.frame(a, b, c, d)
Run Code Online (Sandbox Code Playgroud)
使用ggplot2,我在 x = a 和 y = b 上创建了散点图,并在二维上加权(通过colour = c和size = d)。请注意,x 和 y 是故意的1:5。
显然,不同大小和颜色的点因此重叠,所以我尝试抖动以避免重叠:
ggplot(df, aes(a, b, colour = c, size = d)) +
geom_point(position = position_jitter())
Run Code Online (Sandbox Code Playgroud)
现在我希望这些点聚集得更紧密,所以我尝试了抖动函数height和的几种组合width,例如
ggplot(df, aes(a, …Run Code Online (Sandbox Code Playgroud) 我绘制了一个带有两个 y 轴的图表。然而,根据我的口味,轴的标题有点太接近了。我已经设法拉开主轴标题的距离,但不知道如何对次轴进行同样的操作。这是我使用过的代码:
ggplot(data1, aes(x=year))+
geom_line(aes(y= data1$`export share`, colour= "export share"), size = 2)+
geom_line(aes(y=data1$pm25/coeff, colour= "pm25"), size = 2)+
scale_x_continuous(breaks = scales::pretty_breaks(n = 17), name = "Year")+
scale_y_continuous(name="Export Share of GDP", labels = scales::percent, sec.axis=sec_axis(trans = ~.*coeff, name = "PM2.5"))+
theme(axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0)), axis.text.x = element_text(vjust = 5) ,legend.title = element_blank(), legend.box.margin = margin(0,0,0,10), text = element_text(size = 30)) +
scale_colour_discrete("",
breaks=c("export share", "pm25"),
labels=c("Export Share …Run Code Online (Sandbox Code Playgroud) 有没有办法用 ggplot2 更改图例中键的宽度和高度?在下面的示例中,我想用可以调整宽度和高度的矩形替换图例中的点。我尝试使用keywidth没有成功。
library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme(
legend.position = "top",
legend.title = element_blank()
) +
guides(
color = guide_legend(
label.position = "top",
override.aes = list(shape = 15, size = 5),
keywidth = unit(2, "cm") # This is not giving me what I was expecting.
)
)
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v0.3.0)于 2020-07-23 创建
我已经成功地在 R 中制作了一个堆叠条形图,其中几个不同类别的百分比加起来为 100%。数据框如下所示:
sujeito epentese vozeamento teste posicao palavra tipo ortografia cseguinte
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 a 1 1 P L alpes ps ces d_v
2 a 0 1 P L crepes ps ces d_v
3 a 0 0 P L chopes ps ces d_v
4 a 1 0 P L jipes ps ces d_d
5 a 1 0 P L naipes ps ces d_d
6 a 0 0 P L xaropes ps …Run Code Online (Sandbox Code Playgroud) 使用 ggplot,我生成了三个图形,我想使用包 patchworks 以打包方式(在彼此之上)组合这些图形。
这可以通过键入以下内容轻松实现:
graph1/graph2/graph3
但是,我遇到的问题是,对于这三个图形,我有一个共同的 y 轴,我自然希望将其放置在中心图形处(因此,当我制作时,我只为图形 2 创建了 y 轴标签ggplot 中的图表)。这个 y 轴标签文本相当长。因此,我想将它扩展到“超出其他图表的边界”。但是,我的结果如下图所示。
可以看出,y轴标签允许延伸到顶部图但不允许延伸到底部图(这里多余的标签文本被简单地删除,就像底部图放在文本顶部一样)。
我怎样才能让我的 y 轴标签也延伸到底部图形中?之后简单地更改图片的尺寸以使中心图形足够大以容纳标签不是一种选择(然后图形会太大而无法放在一页上)。
在ggplot2中使用geom_label(),是否可以使矩形完全正方形而不是圆角?
data(iris)
ggplot(iris, aes(Sepal.Width, Sepal.Length)) + geom_point() +
geom_label(x=4, y=7, label = "Test label")
Run Code Online (Sandbox Code Playgroud)
我想将测试标签周围的圆角矩形弄成正方形。
谢谢。
我模拟了一个数据集,进行了一些数据操作(以一种非常笨拙的方式)并绘制了以下图。
模拟数据:
# Step 1 : Simulate Data
set.seed(123)
Hospital_Visits = sample.int(20, 5000, replace = TRUE)
Weight = rnorm(5000, 90, 10)
disease <- c("Yes","No")
disease <- sample(disease, 5000, replace=TRUE, prob=c(0.4, 0.6))
Disease <- as.factor(disease)
my_data = data.frame(Weight, Hospital_Visits, Disease)
my_data$hospital_ntile <- cut(my_data$Hospital_Visits, breaks = c(0, 5, 10, Inf), labels = c("Less than 5", "5 to 10", "More than 10"), include.lowest = TRUE)
Run Code Online (Sandbox Code Playgroud)
数据处理:
# Step 2: Data Manipulation:
my_data$weight_ntile <- cut(my_data$Weight, breaks = seq(min(my_data$Weight), max(my_data$Weight), by = (max(my_data$Weight) - min(my_data$Weight)) …Run Code Online (Sandbox Code Playgroud) 所以我在一个简单的表格中排列了对数转换的测量数据:
x y
1.158362492 1.322219295
1.1430148 1.267171728
1.11058971 1.252853031
1.120573931 1.260071388
1.149219113 1.278753601
1.123851641 1.276461804
1.096910013 1.222716471
Run Code Online (Sandbox Code Playgroud)
我知道有一些函数可以为这些数据绘制置信椭圆,但是如何计算生成形状的面积?
谢谢
我有这段代码并且我正在使用 RStudio
library(tidyverse)
library(osmdata)
bbx <- getbb("hawaii")
border <- bbx %>%
opq() %>%
add_osm_feature(key = "place",
value = c("island")) %>%
osmdata_sf()
border
ggplot() +
geom_sf(
data = border$osm_lines,
inherit.aes = FALSE,
color = "black",
size = .4,
alpha = .8
)
Run Code Online (Sandbox Code Playgroud)
当我绘制这个时我有这个
正如您所看到的,我在标签中使用了一个白色矩形,而不是度数符号。
我怎么解决这个问题?
提前致谢
PS:我使用的是 Window11 64 位,RStudio 已更新为默认选项,并且所有软件包均已更新。