我有一个简单的实验相同数据图。
* 210 == 1234 % 2^8
* 4 == (1234/2^ 8) % 2^8
* 0 == (1234/2^16) % 2^8
* 0 == (1234/2^24) % 2^8
我想遮住线下的特定区域,比方说35-45mm。从我到目前为止搜索的内容来看,我认为我需要使用面函数,但我不确定如何从像这样的大数据集中分配顶点。到目前为止,我见过的每个例子都使用了正常的曲线。
感谢任何帮助,我是R / RStudio的新手!
答案 0 :(得分:0)
以下是使用tidyverse
工具的解决方案,包括ggplot2
。我使用内置的airquality
数据集作为示例。
第一部分只是将数据放入我们可以通过将月份和日期组合成单个日期来绘制的格式。您只需在数据中替换date
PositionA
即可。
library(tidyverse)
df <- airquality %>%
as_tibble() %>%
magrittr::set_colnames(str_to_lower(colnames(.))) %>%
mutate(date = as.Date(str_c("1973-", month, "-", day)))
这是情节代码。在ggplot2
中,我们从函数ggplot()
开始,并使用geom
向+
添加geom_line
函数,以便在图层中创建绘图。
第一个函数x
根据geom
变量按照它们出现的顺序连接所有观察结果,因此它会生成我们看到的行。每个mapping
都需要特定date
美学,所以我们在x轴上需要temp
,y轴需要aes(x = date, y = temp)
,所以我们写geom_ribbon
第二个函数x
用于绘制ymax
和ymin
之间特定ymin = 55
值的频段。这样,我们可以通过选择常量ymax = temp
(低于最低温度的值)并设置data
来遮蔽线下方的区域。
我们通过指定geom
参数来对图表的特定部分进行着色。通常,ggplot()
函数会对来自filter
的数据集继承起作用,但您可以通过单独指定来覆盖它们。在这里,我们使用date
仅绘制geom_ribbon
中ggplot(df) +
geom_line(aes(x = date, y = temp)) +
geom_ribbon(
data = filter(df, date < as.Date("1973-07-01") & date > as.Date("1973-06-01")),
mapping = aes(x = date, ymax = temp, ymin = 55)
)
在6月份的点。
use rocket::response::content::Html;
#[get("/")]
fn page_index() -> Html<&'static str> {
Html(r"<html>...</html>")
}
这给出了下面的图表:
由reprex package(v0.2.0)创建于2018-02-20。