Matplotlib kết nối các điểm scatterplot với dòng - Python


102

Tôi có hai danh sách, ngày tháng và giá trị. Tôi muốn vẽ chúng bằng matplotlib. Sau đây tạo một biểu đồ phân tán dữ liệu của tôi.

import matplotlib.pyplot as plt

plt.scatter(dates,values)
plt.show()

plt.plot(dates, values) tạo một biểu đồ đường.

Nhưng những gì tôi thực sự muốn là một biểu đồ phân tán nơi các điểm được nối với nhau bằng một đường thẳng.

Tương tự như trong R:

plot(dates, values)
lines(dates, value, type="l")

, cung cấp cho tôi một biểu đồ phân tán của các điểm được phủ bởi một đường nối các điểm.

Làm cách nào để làm điều này trong python?


5
Gọi show()sau khi gọi cả hai scatter()plot()trước?

Câu trả lời:


136

Tôi nghĩ @Evert có câu trả lời đúng:

plt.scatter(dates,values)
plt.plot(dates, values)
plt.show()

Điều đó khá giống với

plt.plot(dates, values, '-o')
plt.show()

hoặc bất cứ điều gì linestyle bạn thích.


3
'linestyle' là đầu mối tìm kiếm từ khóa tốt để tôi dẫn đường qua các tài liệu matplotlib (gynormous).
Reb.Cabin 14/02/17

2
@aaronsnoswell Kích thước và màu sắc chỉ có ý nghĩa đối với các điểm mà bạn vẫn có thể vẽ biểu đồ thông qua scatter, theo ví dụ đầu tiên của tôi. Câu hỏi không nói bất cứ điều gì về độ dày hoặc màu sắc khác nhau của đường kẻ, vì vậy tôi nghĩ lời chỉ trích của bạn hơi không công bằng, thực sự.
Hannes Ovrén

28

Đối với các đường màu đỏ, một điểm

plt.plot(dates, values, '.r-') 

hoặc cho điểm đánh dấu x và đường màu xanh lam

plt.plot(dates, values, 'xb-')

Có vẻ như bạn, Evert và kigurai đều ổn. Bạn có thể gọi cả scatter () và plot () trước khi gọi show (). Hoặc chỉ cần gọi plot () với các thuộc tính đường và điểm như Steve Barnes đã mô tả. Cảm ơn
brno792

14

Ngoài những gì được cung cấp trong các câu trả lời khác, từ khóa "zorder" cho phép người ta quyết định thứ tự trong đó các đối tượng khác nhau được vẽ theo chiều dọc. Ví dụ:

plt.plot(x,y,zorder=1) 
plt.scatter(x,y,zorder=2)

vẽ biểu tượng phân tán trên đầu dòng, trong khi

plt.plot(x,y,zorder=2)
plt.scatter(x,y,zorder=1)

vẽ dòng trên các ký hiệu phân tán.

Xem, ví dụ: bản demo zorder

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.