2016-02-02 17 views
5

Tôi gặp sự cố khi sử dụng ggplotly() cho biểu đồ ggplot: trục y biến mất. Dưới đây là một ví dụ tái sản xuất sử dụng iris bộ dữ liệu (ví dụ này là khá bãi, nhưng bất cứ điều gì)ggplot2 + sơ đồ: Tiêu đề trục biến mất

data(iris) 
g = ggplot(data = iris, aes(x = Petal.Length, y = Petal.Width, fill = Species)) + 
    geom_bar(stat = "identity", position = "dodge") + 
    scale_fill_manual(name = "legend", values = c("blue", "red", "green")) + 
    ylab("Y title") + 
    ylim(c(0,3)) + 
    xlab("X title") + 
    ggtitle("Main title") 
g 
ggplotly(g) 

Như bạn thấy, tiêu đề trục Y biến mất.

Vâng, nếu ylim bị xóa thì nó hoạt động, nhưng tôi muốn chỉ định giới hạn y.

Tôi cố gắng để làm như sau:

data(iris) 
g = ggplot(data = iris, aes(x = Petal.Length, y = Petal.Width, fill = Species)) + 
    geom_bar(stat = "identity", position = "dodge") + 
    scale_fill_manual(name = "legend", values = c("blue", "red", "green")) + 
    scale_y_continuous(name = "Y title", limits = c(0, 3)) + 
    xlab("X title") + 
    ggtitle("Main title") 
g 
ggplotly(g) 

Nhưng bây giờ đó là danh hiệu huyền thoại mà không phù hợp.

cấu hình của tôi: R 3.2.0, 2.0.16 plotly, ggplot2 2.0.0

Trong cả hai ví dụ đồ thị do ggplot là những gì tôi muốn, nhưng ggplotly cho cái gì khác. Có vấn đề gì không, có cách giải quyết nào không?

Trả lời

7

Tôi không chắc chắn lý do tại sao nó xảy ra nhưng đây là một công việc xung quanh. Nó sẽ cung cấp cho bạn những gì bạn muốn.

p <- ggplotly(g) 
x <- list(
    title = "X Title" 
) 
y <- list(
    title = "Y Title" 
) 
p %>% layout(xaxis = x, yaxis = y) 
+0

điều này thậm chí còn tồi tệ hơn đối với các khía cạnh – marbel

2

Tôi đã gặp sự cố tương tự. Một đối tượng ggplot được đẩy qua ggplotly đã được trưng bày cắt nhãn y trục của tôi [trong một ứng dụng sáng bóng].

Để khắc phục, tôi đã làm những gì MLavoie đề xuất nhưng sau đó nó có BOTH nhãn ggplot của tôi và nhãn ggplotly của tôi. Để khắc phục điều này, tôi chỉ cần đặt nhãn ggplot của mình thành không gian và mọi thứ đã hoạt động (nếu bạn đặt chúng thành không có gì, các nhãn rõ ràng sẽ chồng chéo với các giá trị đánh dấu trên trục).

p <- ggplotly(g + ylab(" ") + xlab(" ")) 
x <- list(
    title = "X Title" 
) 
y <- list(
    title = "Y Title" 
) 
p %>% layout(xaxis = x, yaxis = y) 
Các vấn đề liên quan