Tôi có tập dữ liệu với các chỉ số cảm biến "liên tục" hiệu quả, với khoảng cách không thường xuyên.Đặt khoảng cách/ngắt trong một ô dòng
Tuy nhiên, có một số giai đoạn không ghi lại dữ liệu. Những khoảng trống này dài hơn đáng kể so với khoảng thời gian mẫu. Theo mặc định, pyplot kết nối từng điểm dữ liệu với điểm dữ liệu tiếp theo (nếu tôi có bộ kiểu đường), tuy nhiên tôi cảm thấy điều này hơi gây nhầm lẫn khi kết nối hai điểm dữ liệu ở hai bên của khoảng cách dài.
Tôi muốn đơn giản là không có dòng ở đó; có nghĩa là, tôi muốn dòng dừng lại và bắt đầu lại sau khoảng trống.
Tôi đã thử thêm vào một phần tử trong các phần khoảng cách này với giá trị y None
, nhưng dường như gửi đường trở lại phần trước của cốt truyện (mặc dù những dòng này không xuất hiện ở tất cả các mức thu phóng) .
Tùy chọn khác mà tôi đã nghĩ chỉ đơn giản là vẽ từng mảnh bằng một cuộc gọi riêng đến plot
, nhưng điều này sẽ hơi xấu xí và rườm rà.
Có cách nào thanh lịch hơn để đạt được điều này không?
Chỉnh sửa: Dưới đây là ví dụ hoạt động tối thiểu thể hiện hành vi. Cốt truyện đầu tiên là dòng nối mà tôi đang cố gắng tránh. Cốt truyện thứ hai cho thấy thêm một giá trị None
xuất hiện để hoạt động, tuy nhiên nếu bạn xoay chế độ xem của ô, bạn sẽ có được những gì được hiển thị trong hình thứ ba, một dòng nhảy đến phần trước của cốt truyện.
import numpy as np
import matplotlib.pyplot as plt
t1 = np.arange(0, 8, 0.05)
t2 = np.arange(10, 14, 0.05)
t = np.concatenate([t1, t2])
c = np.cos(t)
fig = plt.figure()
ax = fig.gca()
ax.plot(t, c)
ax.set_title('Undesirable joining line')
t1 = np.arange(0, 8, 0.05)
t2 = np.arange(10, 14, 0.05)
c1 = np.cos(t1)
c2 = np.cos(t2)
t = np.concatenate([t1, t1[-1:], t2])
c = np.concatenate([c1, [None,], c2])
fig = plt.figure()
ax = fig.gca()
ax.plot(t, c)
ax.set_title('Ok if you don\'t pan the plot')
fig = plt.figure()
ax = fig.gca()
ax.plot(t, c)
ax.axis([-1, 12, -0.5, 1.25])
ax.set_title('Strange jumping line')
plt.show()
Có thể tạo một ví dụ có thể tái sản xuất, đặc biệt là hiển thị mã matplotlib bạn đang sử dụng để vẽ không? –
Ý tưởng hay. Đã thêm ví dụ. – Alex
Nếu bạn gọi lô đất() hai lần thì sao? I E. ax.plot (t1, c1) và ax.plot (t2, c2). Bạn phải đặt màu theo cách thủ công: ax.plot (t1, c1, c = "b") – Robbert