Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để vẽ các giá trị có mặt nạ và NaN trong Matplotlib?

Để vẽ biểu đồ các giá trị có mặt nạ và NaN trong Matplotlib, chúng ta có thể thực hiện các bước sau -

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ.
  • Tạo x y điểm dữ liệu bằng cách sử dụng numpy.
  • Nhận x2 y2 điểm dữ liệu sao cho y> 0,7 .
  • Lấy mặt nạ y3 điểm dữ liệu sao cho y> 0,7 .
  • Mặt nạ y3 với các giá trị NaN.
  • Lô đất x , y , y2 , y3 y4 sử dụng plot () phương pháp.
  • Đặt một chú giải vào cốt truyện.
  • Đặt tiêu đề của cốt truyện.
  • Để hiển thị hình này, hãy sử dụng show () phương pháp.

Ví dụ

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.linspace(-np.pi/2, np.pi/2, 31)
y = np.cos(x)**3

# 1) remove points where y > 0.7
x2 = x[y <= 0.7]
y2 = y[y <= 0.7]

# 2) mask points where y > 0.7
y3 = np.ma.masked_where(y > 0.7, y)

# 3) set to NaN where y > 0.7
y4 = y.copy()
y4[y3 > 0.7] = np.nan

plt.plot(x*0.1, y, 'o-', color='lightgrey', label='No mask')
plt.plot(x2*0.4, y2, 'o-', label='Points removed')
plt.plot(x*0.7, y3, 'o-', label='Masked values')
plt.plot(x*1.0, y4, 'o-', label='NaN values')
plt.legend()

plt.title('Masked and NaN data')

plt.show()

Đầu ra

Làm thế nào để vẽ các giá trị có mặt nạ và NaN trong Matplotlib?