Tôi mới đến ggplot nên chịu với tôi. Tôi lập biểu đồ dự báo tăng trưởng cho 35 khu vực địa lý nhỏ, đó là một số tiền không lành mạnh cho một âm mưu ngay cả khi sử dụng thư viện tuyệt vời directlabels
. Tuy nhiên tôi cần tất cả các bộ phim để sàng lọc ban đầu.Chuyển biến với các loại đường tới ggplot linetype
Thách thức là làm cho nó dễ đọc. Tôi đã tìm thấy bản sửa lỗi của @Ben Bolker để sử dụng large numbers of distinct colors nhưng đang gặp sự cố khi thay đổi linetype. Loạt 35 không cần phải là duy nhất, nhưng tôi muốn sử dụng 12 loại khác nhau để làm cho từng chuỗi dễ đọc hơn.
Kế hoạch của tôi là tạo ra một danh sách ngẫu nhiên với 35 yếu tố của 12 loại tốt và vượt qua điều đó như là đối số linetype, nhưng tôi đang gặp rắc rối khi muốn làm việc, với các lỗi:
Error: Aesthetics must either be length one, or the same length as the dataProblems:lty
tôi có 35 giá trị trong danh sách linetype. Tất nhiên tôi muốn cho các loại, màu sắc và tất cả được phản ánh trong truyền thuyết.
Dữ liệu được làm nóng trông giống như sau; quan sát 9 năm cho mỗi 35 series:
> simulation_long_index[16:24,]
year geography value
16 2018 sfr_2 101.1871
17 2019 sfr_2 101.1678
18 2020 sfr_2 101.2044
19 2012 sfr_3 100.0000
20 2013 sfr_3 100.1038
21 2014 sfr_3 100.2561
22 2015 sfr_3 100.0631
23 2016 sfr_3 100.8071
24 2017 sfr_3 101.2405
Đây là mã của tôi cho đến nay:
lty <- data.frame(lty=letters[1:12][sample(1:12, 35,replace=T)])
g3<-ggplot(data=simulation_long_index,
aes(
x=as.factor(year),
y=value,
colour=geography,
group=geography,
linetype=lty$lty))+
geom_line(size=.65) +
scale_colour_manual(values=manyColors(35)) +
geom_point(size=2.5) +
opts(title="growth")+
xlab("Year") +
ylab(paste("Indexed Value (Rel. to 2012")) +
opts(axis.text.x=theme_text(angle=90, hjust=0))
print(g3)
thêm
scale_linetype_manual("",values=lty$lty) +
sau scale_color_manual thay vì lập luận linetype sản xuất bảng xếp hạng, nhưng tất cả các dòng đều giống nhau. Làm thế nào, sau đó, tôi có được các dòng khác nhau cho số lượng lớn?
'lty' cần phải là một cột trong khung dữ liệu gốc của bạn. (Và như một lưu ý chung, nếu bạn đang sử dụng các dấu hiệu đô la bên trong 'aes' đó là một dấu hiệu tốt cho thấy bạn đang làm điều gì đó sai.) – joran