2012-06-04 18 views
5

Tôi có một danh sách cạnh thực sự lớn, và tôi chỉ muốn vẽ các cạnh có trọng lượng riêng, tôi có thể làm như thế nào?Chỉ các ô có trọng lượng riêng - igraph

Tôi đã cố gắng cho đến nay

plot.graph(E(sgdf)[E(sgdf)$weight==3])) 

nhưng tôi luôn nhận được lỗi này

Error in V(g) : Not a graph object 
+1

Bạn có nghĩa là gói 'igraph' không? Bạn có nghĩa là 'plot.igraph'? Bạn có thể cung cấp một ví dụ tái sản xuất tối thiểu? –

+0

Gói iGraph. – Jose187

+0

Hmm. Không có gói nào có tên trên CRAN (http://cran.r-project.org/web/packages/available_packages_by_name.html#available-packages-I). Bạn đã tải xuống từ đâu? –

Trả lời

11

Sao chép đồ thị của bạn đầu tiên, loại bỏ các cạnh mà bạn không cần, và cốt truyện còn lại:

> sgdf.copy <- delete.edges(sgdf, which(E(sgdf)$weight != 3)-1) 
> plot(sgdf.copy) 

-1 là cần thiết trong delete.edges vì igraph sử dụng z chỉ số cạnh dựa trên ero trong khi R sử dụng chỉ mục dựa trên 1.

Cập nhật: với tư cách là người chỉnh sửa ẩn danh (có chỉnh sửa đáng buồn bị từ chối), igraph sử dụng chỉ số cạnh 1 cạnh từ igraph 0.6 trở đi. Do đó, trừ 1 chỉ khi bạn đang sử dụng igraph 0.5.x hoặc cũ hơn.

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