Giả sử tôi có những điều sauhình dạng thay đổi sử dụng cho scale_shape() trong ggplot2
y <- rnorm(10)
b <- as.factor(sample(1:4,10,replace=T))
qplot(1:10, y, shape=b)
Làm thế nào để thay đổi hình dạng được sử dụng sử dụng ggplot2
?
Giả sử tôi có những điều sauhình dạng thay đổi sử dụng cho scale_shape() trong ggplot2
y <- rnorm(10)
b <- as.factor(sample(1:4,10,replace=T))
qplot(1:10, y, shape=b)
Làm thế nào để thay đổi hình dạng được sử dụng sử dụng ggplot2
?
Các ggplot cách để làm điều đó sẽ được sử dụng scale_shape_manual
và cung cấp các hình dạng mong muốn trong values
luận:
qplot(1:10, y, shape=b) + scale_shape_manual(values = c(0, 5, 6, 15))
Các hình dạng đều giống nhau như chỉ số 0-25 thông thường: http://yusung.blogspot.com/2008/11/plot-symbols-in-r.html
> y <- rnorm(10)
> b <- as.factor(sample(1:4,10,replace=T))
> qplot(1:10, y, shape=b)
> qplot(1:10, y, pch=letters[1:10], cex=6)
Đây có phải là ý của bạn không? Tôi tưởng tượng bạn có thể sử dụng bất kỳ ký tự âm mưu nào của R ...
Đây có thể không phải là cách rất 'ggplot' để làm điều này, nhưng trang người dùng đọc "Bạn có thể sử dụng nó như bạn muốn sử dụng ' chức năng cốt truyện. :-)
'Lỗi: scale_shape_discrete có thể đối phó với tối đa của 6 giá trị rời rạc, nhưng bạn có 10. Xem? scale_manual cho một lựa chọn có thể' – isomorphismes
Để người biên soạn câu trả lời t Harlan, đây là một tài liệu tham khảo cho các hình dạng có sẵn - bắt đầu từ 0 ở phía dưới bên trái và đọc ngay sau đó lên (10Y + x):
df <- data.frame(x=c(0:129))
ggplot(df, aes(x=x%%10, y=floor(x/10), shape=factor(x), colour=x, size=10)) +
geom_point() +
scale_shape_manual(values=df$x) + theme(legend.position='none') +
scale_x_continuous(breaks=0:10) + scale_y_continuous(breaks=0:12) +
scale_colour_hue() + scale_colour_gradientn(colours=rainbow(3))
Đây là một cách tốt hơn để làm điều đó, vì nó giữ lại huyền thoại và làm việc với đồ họa cơ sở, không phải cơ sở. Tôi tìm hiểu thêm về ggplot ở đây mỗi ngày, cảm ơn! – Vince
Xin chào, làm thế nào tôi có thể thay đổi kích thước của các biểu tượng khi bạn đang sử dụng scale_shape_manual()? Tôi đã thử sử dụng geom_point (size = 4), nhưng đầu ra là hai biểu tượng (hai kích cỡ). Bất kỳ trợ giúp sẽ được đánh giá cao. – Rafael
Nếu bạn đang sử dụng qplot, 'size = 4' cần phải đi bên trong cuộc gọi' qplot', chứ không phải riêng biệt. Nếu bạn thêm một 'geom_point', bạn đang tạo một lớp thứ hai một cách hiệu quả. (Điều này, ngẫu nhiên, là lý do tại sao bạn không nên sử dụng 'qplot' - nó gây nhầm lẫn.) – Harlan