2017-06-18 22 views
6

Tôi muốn âm mưu khu vực xếp chồng lên nhau với Python, và tìm hiểu Pandas này chức năng:Di anti-aliasing cho gấu trúc plot.area

df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd']) 
df.plot.area(); 

Tuy nhiên, kết quả là kì lạ antialiased, trộn cùng màu sắc, như hiển thị trên các lô 2: Example of plot.area

Zoom of plot.area

vấn đề tương tự xảy ra trong ví dụ được cung cấp trong documentation.

Bạn có biết cách xóa tính năng chống răng cưa này không? (Hoặc một phương tiện khác để có được một đầu ra gọn gàng để biểu diễn xếp chồng các đường thẳng.)

Trả lời

2

Sử dụng một âm mưu matplotlib ngăn xếp hoạt động tốt

fig, ax = plt.subplots() 
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd']) 
ax.stackplot(df.index, df.values.T) 

enter image description here

Kể từ khi âm mưu khu vực là một stackplot, sự khác biệt duy sẽ là độ rộng của các khu vực mà bạn có thể đặt thành 0.

df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd']) 
df.plot.area(linewidth=0) 

enter image description here

Các dòng xám còn lại là sau đó thực sự do khử răng cưa. Bạn có thể bật tắt rằng trong cốt truyện matplotlib

fig, ax = plt.subplots() 
ax.stackplot(df.index, df.values.T, antialiased=False) 

Kết quả tuy nhiên, có thể không trực quan hấp dẫn:

enter image description here

+0

Xem câu trả lời được cập nhật để xóa các đường màu xám. – ImportanceOfBeingErnest

1

Dường như có hai ranh giới.
Hãy thử một chiều rộng không dây:

df.plot.area(lw=0); 

enter image description here

+0

Cảm ơn bạn đã trả lời, nó là tốt hơn nhiều với tùy chọn này! Để tiếp tục, bạn có biết cách xóa các đường màu xám tinh tế còn lại giữa các khu vực xếp chồng không? – ahstat

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