2012-05-10 24 views
7

Tôi muốn thêm một đường (lũy thừa) lũy thừa (lũy thừa) vào lô của tôi. Tôi đang sử dụng gói ggplot2.Thêm đường dây exp/power trend vào ggplot

Tôi có một cái gì đó như thế này (chỉ với dữ liệu nhiều hơn nữa):

require(ggplot2) 

df <-read.table("test.csv", header = TRUE, sep = ",") 
df 
    meta temp 
1 1.283 6 
2 0.642 6 
3 1.962 6 
4 8.989 25 
5 8.721 25 
6 12.175 25 
7 11.676 32 
8 12.131 32 
9 11.576 32 

ggplot(df, aes(temp, meta)) + 
    ylab("Metabolism") + xlab("Temperature") + 
    geom_point() + 
    theme_bw() + 
    scale_x_continuous(limits = c(0, 35)) + 
    scale_y_log10() 

Tôi biết rằng điều này sẽ được thể hiện với một hàm mũ - vì vậy câu hỏi của tôi là làm thế nào tôi có thể quảng cáo các 'mũ' phù hợp nhất ? Tương tự như vậy, nó có thể làm cho một sức mạnh phù hợp quá?

Chức năng stat_smooth() có cơ hội này hoặc có các chức năng khác trong gói ggplot2 tôi nên sử dụng không?

+1

Chào mừng bạn đến SO. +1 để đăng mã và dữ liệu mẫu. – Andrie

Trả lời

10

Bạn có thể chỉ định các mô hình để phù hợp như một đối số stat_smooth bằng cách đi qua hai đối số:

  • phương pháp, ví dụ method="lm"
  • mô hình, ví dụ: model = log(y) ~ x

ggplot2 đầu tiên thực hiện việc chuyển đổi quy mô và sau đó phù hợp với mô hình, vì vậy trong ví dụ của bạn, bạn chỉ cần có để thêm

+ stat_smooth(method="lm") 

để âm mưu của bạn:

library(ggplot2) 
ggplot(df, aes(temp, meta)) + 
    ylab("Metabolism") + xlab("Temperature") + 
    geom_point() + 
    theme_bw() + 
    scale_x_continuous(limits = c(0, 35)) + 
    scale_y_log10() + 
    stat_smooth(method="lm") 

enter image description here


Tương tự, phù hợp và hình vẽ một đường cong điện cũng đơn giản như thay đổi x quy mô của mình để đăng nhập:

ggplot(df, aes(temp, meta)) + 
    ylab("Metabolism") + xlab("Temperature") + 
    geom_point() + 
    theme_bw() + 
    scale_x_log10() + 
    scale_y_log10() + 
    stat_smooth(method="lm") 

enter image description here

+0

Cảm ơn bạn rất nhiều! Tuyệt vời mà ggplot hình nó ra bởi 'nó tự' loại mô hình để sử dụng khi trục là những thay đổi. Tôi có một câu hỏi khác. Có thể lấy giá trị R^2 ra khỏi sự phù hợp không? Trong một lô tuyến tính bình thường tôi sẽ chỉ sử dụng: phù hợp <- lm (x ~ y, dữ liệu = df), tóm tắt (vừa) [C ("r.squire")] – PJensen

Các vấn đề liên quan