小编red*_*981的帖子

R 使用 ggplot2 geom_spoke 绘制膨胀方向箭头

我正在尝试绘制膨胀方向(md$Swell.Dir 和 height(md$m) 以便结果是类似于下面的图形;

风向&波高

这是我使用 dput 的数据的一个小样本;

md <- structure(list(UTC = structure(1:6, .Label = c("01-Feb-17 1200", 
"01-Feb-17 1500", "01-Feb-17 1800", "01-Feb-17 2100", "02-Feb-17 0000", 
"02-Feb-17 0300", "02-Feb-17 0600", "02-Feb-17 0900", "02-Feb-17 1200", 
"02-Feb-17 1500", "02-Feb-17 1800", "02-Feb-17 2100", "03-Feb-17 0000", 
"03-Feb-17 0300", "03-Feb-17 0600", "03-Feb-17 0900", "03-Feb-17 1200", 
"03-Feb-17 1500", "03-Feb-17 1800", "03-Feb-17 2100", "04-Feb-17 0000", 
"04-Feb-17 0300", "04-Feb-17 0600", "04-Feb-17 0900", "04-Feb-17 1200", 
"04-Feb-17 1500", "04-Feb-17 1800", "04-Feb-17 2100", "05-Feb-17 0000", 
"05-Feb-17 0300", "05-Feb-17 0600", "05-Feb-17 0900", "05-Feb-17 1200", …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

5
推荐指数
1
解决办法
1195
查看次数

geom_area 高于临界水平时不同的填充颜色

我试图让 geom_area 具有取决于 Y 轴值的双色。

例如,如果我们有一个最大 X 值为 50 的 geom_area,我希望填充颜色在低于 10 时为蓝色,在高于 10 时为红色。

样本数据;

df <- data.frame(
  y = sample(1:50),
  x = sample(1:50)
)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我设法得到的最接近的是使用以下代码;

ggplot(data = df, aes(x = x)) + 
  geom_area(aes(y = y),fill = "red") +
  geom_ribbon(aes(ymin = 0, ymax = ifelse(y >= 10,10,y)),fill = "blue")
Run Code Online (Sandbox Code Playgroud)

这几乎满足了我的要求,但问题是水平分割并未完全穿过 geom_area,因为当下一个值低于最大值时,功能区的边缘会直接到达下一个点,这会扰乱分割。

样本图

这正是代码所告诉它的内容,所以我一定使用了错误的方法来创建颜色分割,但无法弄清楚如何正确地做到这一点。

r ggplot2

5
推荐指数
1
解决办法
898
查看次数

在条件下向前填充列

我的数据框看起来像这样;

df = pd.DataFrame({'Col1':[0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0]
                   ,'Col2':[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]})
Run Code Online (Sandbox Code Playgroud)

如果 col1 在第 2 列中包含值 1,我想用 1 n 次向前填充。例如,如果 n = 4 那么我需要结果看起来像这样。

df = pd.DataFrame({'Col1':[0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0]
                   ,'Col2':[0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1]})
Run Code Online (Sandbox Code Playgroud)

我想我可以使用带有计数器的 for 循环来做到这一点,该计数器在每次出现条件时都会重置,但有没有更快的方法来产生相同的结果?

谢谢!

python numpy fill conditional-statements pandas

5
推荐指数
1
解决办法
107
查看次数

标签 统计

ggplot2 ×2

r ×2

conditional-statements ×1

fill ×1

numpy ×1

pandas ×1

python ×1