簡體   English   中英

使用 ggplot2 在 R 中為多行制作最佳擬合線

[英]Making lines of best fits in R for multiple lines using ggplot2

我有一行代碼的滴定曲線

ggplot(Titration.Aug.9, aes(x = Dilution, y = `X..bound`)) +
  geom_line(aes(color = Sample)) +
  geom_point() +
  geom_smooth(formula = y ~ x, method = "loess", se = FALSE, linetype = "dashed") +
  scale_x_continuous(trans = "log10", 
                     breaks = trans_breaks("log10", function(x) 10^x), 
                     labels = trans_format("log10", math_format(10^.x)), 
                     minor_breaks = 10^(seq(0, 7, by = 0.25))) +
  scale_color_brewer(type = "Sample", palette = "Set1") +
  labs(x = "Antibody Dilution", y = "% Cell Binding") +
  theme_minimal()

我已經生成了一個看起來很不錯的 plot。 但是,我需要數據有一條最適合每個單獨的 plot 點的線。 我試圖用黃土來做到這一點,但我需要每條線都是不同的顏色。 圖表圖像這是我的圖表,但我需要線條最適合每個未由實際點圖鏈接的樣本圖表圖像 2種類似於使用這行代碼生成的這種

ggplot(Titration.Aug.9, aes(x = Dilution, y = `X..bound`)) +geom_line(aes(color = Sample)) +geom_point() +geom_smooth(formula = y ~ x, method = "loess", se = FALSE,aes(Color=Sample)) +scale_x_continuous(trans = "log10",breaks = trans_breaks("log10", function(x) 10^x),labels = trans_format("log10", math_format(10^.x)),minor_breaks = 10^(seq(0, 7, by = 0.25))) +scale_color_brewer(type="Sample",palette="Set1") +labs(x="Antibody Dilution",y="% Cell Binding") +theme_minimal()

但是,我需要將這些中的每一個都像在第一張圖像中一樣為每個不同的樣本着色,但在第二張圖像中使用線條擬合格式。 我的數據是:

dput(Titration.Aug.9)
structure(list(Dilution = c(300L, 900L, 2700L, 8100L, 24300L, 
72900L, 218700L, 300L, 900L, 2700L, 8100L, 24300L, 72900L, 218700L, 
300L, 900L, 2700L, 8100L, 24300L, 72900L, 218700L, 300L, 900L, 
2700L, 8100L, 24300L, 72900L, 218700L, 300L, 900L, 2700L, 8100L, 
24300L, 72900L, 218700L, 300L, 900L, 2700L, 8100L, 24300L, 72900L, 
218700L, 300L, 900L, 2700L, 8100L, 24300L, 72900L, 218700L, 300L, 
900L, 2700L, 8100L, 24300L, 72900L, 218700L, 300L, 900L, 2700L, 
8100L, 24300L, 72900L, 218700L), X..bound = c(52.74, 40.31, 30.63, 
18.89, 7.57, 0.8, 0.01, 20.23, 11.29, 7.55, 3.24, 0.54, 0.12, 
0.03, 53.27, 46.82, 38.17, 26.77, 11.59, 2.23, 0.07, 69.25, 63.55, 
56.34, 40.95, 19.35, 2.4, 0.05, 75.8, 68.21, 62.82, 40.33, 11.73, 
0.82, 0.04, 85.75, 82.82, 74.29, 46.63, 9.36, 0.24, 0.05, 71.65, 
66.54, 56.63, 33.96, 6.33, 0.19, 0.03, 85.43, 86.49, 75.73, 51.62, 
15.16, 1.05, 0.01, 92.44, 90.13, 85.92, 72.06, 30.08, 3.15, 0.12
), Sample = c("1mer 0DA", "1mer 0DA", "1mer 0DA", "1mer 0DA", 
"1mer 0DA", "1mer 0DA", "1mer 0DA", "1mer 2DA", "1mer 2DA", "1mer 2DA", 
"1mer 2DA", "1mer 2DA", "1mer 2DA", "1mer 2DA", "1mer 3DA", "1mer 3DA", 
"1mer 3DA", "1mer 3DA", "1mer 3DA", "1mer 3DA", "1mer 3DA", "1mer 4DA", 
"1mer 4DA", "1mer 4DA", "1mer 4DA", "1mer 4DA", "1mer 4DA", "1mer 4DA", 
"5mer 0DA", "5mer 0DA", "5mer 0DA", "5mer 0DA", "5mer 0DA", "5mer 0DA", 
"5mer 0DA", "5mer 2DA", "5mer 2DA", "5mer 2DA", "5mer 2DA", "5mer 2DA", 
"5mer 2DA", "5mer 2DA", "5mer 4DA", "5mer 4DA", "5mer 4DA", "5mer 4DA", 
"5mer 4DA", "5mer 4DA", "5mer 4DA", "5mer 2DA GDG", "5mer 2DA GDG", 
"5mer 2DA GDG", "5mer 2DA GDG", "5mer 2DA GDG", "5mer 2DA GDG", 
"5mer 2DA GDG", "5mer 2DA GDGDG", "5mer 2DA GDGDG", "5mer 2DA GDGDG", 
"5mer 2DA GDGDG", "5mer 2DA GDGDG", "5mer 2DA GDGDG", "5mer 2DA GDGDG"
)), class = "data.frame", row.names = c(NA, -63L))

任何幫助表示贊賞:! 提前感謝您的寶貴時間!! :)

您只需要 map Samplegeom_smooth內的color美學。 我已經刪除了原始的geom_line以使結果更清晰,但這可以重新添加。

ggplot(Titration.Aug.9, aes(x = Dilution, y = `X..bound`)) +
  geom_point() +
  geom_smooth(formula = y ~ x, method = "loess", se = FALSE,
              linetype="dashed", aes(color = Sample)) +
  scale_x_continuous(trans = "log10",
                     breaks = trans_breaks("log10", function(x) 10^x),
                     labels = trans_format("log10", math_format(10^.x)),
                     minor_breaks = 10^(seq(0, 7, by = 0.25))) +
  scale_color_brewer(type="Sample",palette="Set1") +
  labs(x="Antibody Dilution",y="% Cell Binding") +
  theme_minimal() 

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM