2014-05-14 30 views
11

Tôi mới dùng Python và đã làm việc theo cách của mình thông qua một vài cuốn sách trên đó. Mọi thứ đều tuyệt vời, ngoại trừ trực quan hóa. Tôi thực sự không thích matplotlib và Bokeh đòi hỏi quá nặng của một chồng.Làm cách nào để di chuyển khung dữ liệu gấu trúc của tôi sang d3?

Các quy trình làm việc tôi muốn là:

liệu munging phân tích sử dụng gấu trúc trong máy tính xách tay ipython -> hình dung sử dụng d3 trong sublimetext2

Tuy nhiên, là mới cho cả hai Python và d3, tôi không biết là tốt nhất cách để xuất khung dữ liệu gấu trúc của tôi thành d3. Tôi có nên có nó như là một csv? JSON? Hay là có cách trực tiếp hơn?

Câu hỏi phụ: Có cách nào (hợp lý) để thực hiện mọi thứ trong sổ ghi chép ipython thay vì chuyển sang sublimetext không?

Mọi trợ giúp sẽ được đánh giá cao.

+1

Có 'df.to_json' hoặc 'df.to_csv' cho việc di chuyển dữ liệu xung quanh. Có [vincent] (https://github.com/wrobstory/vincent) cho một python -> vega dịch (nó hỗ trợ DataFrames tốt). Và một dự án khác của Rob, [sticky] (https://github.com/wrobstory/sticky), đang ở dạng alpha, nhưng nó giống như những gì bạn muốn để không rời khỏi sổ ghi chép IPython. – TomAugspurger

+0

Tôi biết bạn nói bạn không thích matplotlib, nhưng bạn đã xem [mpld3] (http://mpld3.github.io) chưa? Nó khá tốt đẹp, tôi đã có một thành công gần đây bằng cách sử dụng nó để tạo ra một cốt truyện tương tác trực tuyến. – elias

Trả lời

4

Về cơ bản, không có định dạng nào phù hợp nhất với tất cả nhu cầu trực quan của bạn.

Nó thực sự phụ thuộc vào các hình ảnh bạn muốn có được.

Ví dụ: Stacked Bar Chart lấy làm đầu vào tệp CSV và adjacency matrix vizualisation có định dạng JSON.

Từ kinh nghiệm của tôi:

  • để hiển thị các mối quan hệ beetween mục, như adjacency matrix hoặc chord diagram, ai sẽ thích định dạng JSON mà sẽ cho phép để mô tả mối quan hệ duy nhất hiện có. Dữ liệu được lưu trữ như trong một ma trận thưa thớt và một số dữ liệu có thể được lồng vào nhau bằng từ điển. Hơn nữa định dạng này có thể được phân tích trực tiếp bằng Python.
  • để hiển thị các thuộc tính của một loạt các mục, định dạng CSV có thể được sử dụng tốt. Một ví dụ hoàn hảo có thể được tìm thấy here với màn hình biểu đồ song song.
  • để hiển thị dữ liệu phân cấp, như một cây, JSON là phù hợp nhất.

Điều tốt nhất cần làm để giúp bạn tìm ra những gì định dạng tốt nhất bạn cần, là phải có một cái nhìn lúc này d3js gallery

+1

Vì vậy, về cơ bản takeaway là không có cách nào "tốt nhất" để di chuyển dữ liệu giữa chúng? – Anton

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