我想扩展这个答案中提供的代码。那里的代码在向下滚动时淡入元素,在向上滚动时淡出图像,但在向下滚动时不会淡出。我想实现所有元素:向下滚动时淡入,元素离开视口时淡出,向上滚动时淡入,元素离开视口时淡出。
在看到有关如何在 ggplot2 中从经济学家那里重新创建此图的问题后,我决定自己从头开始尝试(因为没有提供代码或数据),因为我发现这很有趣。
这是我迄今为止设法做的事情:
我能够相对轻松地做到这一点。但是,我正在努力放置饼图。因为 ggplot 使用笛卡尔坐标来制作饼图,所以我不能在同一个图表上有条形图和饼图。所以我发现geom_arc_bar()from ggforce,它确实允许笛卡尔坐标系上的馅饼。但是,问题出在coord_fixed(). 我可以让馅饼对齐,但没有coord_fixed(). 但是,对于coord_fixed(),我无法使图表与经济学人图表的高度相匹配。没有coord_fixed()我可以,但馅饼是椭圆形而不是圆形。见下文:
与coord_fixed():
没有coord_fixed():
我尝试过的另一个选择是分别制作一系列饼图,然后将这些图组合在一起。但是,我努力使情节与gridExtra其他替代方案保持一致。我确实结合了油漆。显然这是有效的,但不是程序化的。我需要一个 100% 基于 R 的解决方案。
我在油漆中粘贴来自 R 的单独图像的解决方案:
有人有解决这个问题的方法吗?我认为这是一个有趣的问题,我提供了一个起点。我愿意接受任何建议,也可以随意提出完全不同的方法,因为我承认我的不是最好的。谢谢!
代码:
# packages
library(data.table)
library(dplyr)
library(forcats)
library(ggplot2)
library(ggforce)
library(ggnewscale)
library(ggtext)
library(showtext)
library(stringr)
# data
global <- fread("Sector,ROE,Share,Status
Technology,14.2,10,Local
Technology,19,90,Multinational
Other consumer,16.5,77,Multinational
Other consumer,20.5,23,Local
Industrial,13,70,Multinational
Industrial,18,30,Local
Cyclical consumer,12,77,Multinational
Cyclical consumer,21,23,Local
Utilities,6,88,Local
Utilities,11,12,Multinational
All sectors,10,50,Local
All sectors,10.2,50,Multinational
Financial,6,27,Multinational
Financial,10.5,73,Local
Diversified,4.9,21,Local
Diversified,5,79,Multinational …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 highcharts复制此折线图。注释包含在语音/文本气泡中。我尝试在 ggplot 中使用 geom_label 执行此操作。为了获取点,我添加了具有向上或向下填充三角形形状的 geom_point 。虽然这适用于深色和不透明的填充和颜色,但它不适用于带有黑色轮廓的白色半透明填充,因为您可以清楚地看到三角形的底部。
有人知道解决这个问题的方法或更好的方法吗?
代码:
library(ggplot)
ggplot(france, aes(Distance, Elevation))+
geom_area(fill = "#90ed7d", color = "#434348",
size = 0.7, alpha = 0.5)+ # area chart
# location labels
geom_label(aes(x, y-200, label = text), data = plot_labels[-3,],
label.padding = unit(.4, "lines"), label.size = unit(.4, "mm"),
label.r = unit(.05, "lines"), alpha = 0.5,
vjust = 0.5, size = 3, family = "Lucida Grande")+
# location labels points
geom_point(aes(x, y-105, fill = "white"), data = plot_labels[-3,],
shape …Run Code Online (Sandbox Code Playgroud) 我有一个对象,在一定数量的行之后,每列中都有所有 NA。一些列在此之前也有 NA。我想获取至少一列有数据的最后一行的行索引。以下是一些可以使用的示例数据:
编辑:为了健壮性,我在@G 之后的第二行添加了 NA。格洛腾迪克评论。在这种情况下,输出仍应为 5。
df <- data.frame(a = 1:5, b = 6:10, c = c(1:3,rep(NA, 2)))
df <- rbind(df, rep(NA, ncol(df)), rep(NA, ncol(df)))
df[2,] <- NA
df
a b c
1 1 6 1
2 NA NA NA
3 3 8 3
4 4 9 NA
5 5 10 NA
6 NA NA NA
7 NA NA NA
Run Code Online (Sandbox Code Playgroud)