gpt4 book ai didi

r - ggplot2:将长字符串(只有 2 个单词以不同方式重复)可视化为条形图

转载 作者:行者123 更新时间:2023-12-05 09:26:26 24 4
gpt4 key购买 nike

我有一个由两类单词组成的 whatsapp 对话:

bla bla bla bla
<indig>fu fu</indig>
<indig>fu fu</indig>
bla bla bla bla bla bla.. bla bla bla bla bla
<indig>fu</indig>?
<indig>fu fu</indig>?
bla bla bla bla bla bla bla bla bla bla bla bla
bla
<indig>fu fu</indig>
bla bla <indig>fu</indig>
bla <indig>fu</indig>
bla.. bla
bla bla bla bla bla bla ??
bla bla bla
bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla
bla bla <indig>fu</indig> bla🤣🤣🤣

我想将 blafu 可视化为使用 2 种颜色的条形图,以便我可以看到 fu 颜色出现在哪里( start, middle, end...) 以及 bla 颜色占多数的位置。到目前为止,我只有一个示例,没有要显示的代码: enter image description here这里黑色可能与 fu 相关联,白色可能与 bla 相关联。有什么想法可以在 ggplot2 中绘制类似的东西吗?

最佳答案

我认为这基本上分为两部分 - 格式化数据和绘制绘图。

格式化数据

# Make one string
input_string <- paste(input_string, collapse = " ")

# delete everything <inside> angle brackets
input_string <- gsub("<.*?>", "", input_string)

# Split on spaces
input_string <- strsplit(input_string, "\\s") |>
unlist()

# delete all non-alpha e.g. "fu?" becomes "fu"
input_string <- gsub("[^[:alpha:]]", "", input_string)

words_to_plot <- c("fu", "bla")

binary_vector_to_plot <- input_string[input_string %in% words_to_plot]

plot_df <- data.frame(
x = seq_along(binary_vector_to_plot),
y = binary_vector_to_plot
)

head(plot_df)
# x y
# 1 1 bla
# 2 2 bla
# 3 3 bla
# 4 4 bla
# 5 5 fu
# 6 6 fu

绘制情节

library(ggplot2)
ggplot(plot_df) +
geom_vline(
aes(
xintercept = x,
color = y
)
) +
theme_bw() +
scale_color_manual(
values = c("white", "black")
) +
ggtitle("Barcode plot") +
theme(
legend.key = element_rect(fill = "grey"),
legend.title = element_blank(),
axis.title.x = element_blank(),
axis.text.x = element_blank()
)

enter image description here

输入数据

input_string <- c(
"bla bla bla bla",
"<indig>fu fu</indig>",
"<indig>fu fu</indig>",
"bla bla bla bla bla bla.. bla bla bla bla bla",
"<indig>fu</indig>?",
"<indig>fu fu</indig>?",
"bla bla bla bla bla bla bla bla bla bla bla bla",
"bla",
"<indig>fu fu</indig>",
"bla bla <indig>fu</indig>",
"bla <indig>fu</indig>",
"bla.. bla",
"bla bla bla bla bla bla ??",
"bla bla bla",
"bla bla bla bla bla bla bla",
"bla bla bla bla bla bla bla bla bla",
"bla bla <indig>fu</indig> bla<U+0001F923><U+0001F923><U+0001F923>"
)

关于r - ggplot2:将长字符串(只有 2 个单词以不同方式重复)可视化为条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73959159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com