Create plot_contour_for_fixed_value.py
This commit is contained in:
		| @@ -0,0 +1,48 @@ | ||||
| """ | ||||
| This code is supported by the website: https://www.guanjihuan.com | ||||
| The newest version of this code is on the web page: https://www.guanjihuan.com/archives/29155 | ||||
| """ | ||||
|  | ||||
| import numpy as np | ||||
| import matplotlib.pyplot as plt | ||||
|  | ||||
| def get_data(x_array, y_array): | ||||
|     z_matrix = np.zeros((y_array.shape[0], x_array.shape[0])) | ||||
|     j0 = -1 | ||||
|     for x in x_array: | ||||
|         j0 += 1 | ||||
|         i0 = -1 | ||||
|         for y in y_array: | ||||
|             i0 += 1 | ||||
|             z_matrix[i0, j0] = x**2+y**2 | ||||
|     return z_matrix | ||||
|  | ||||
| x_array = np.linspace(-1, 1, 1000) | ||||
| y_array = x_array | ||||
| z_matrix = get_data(x_array, y_array)  # 举例的数据 | ||||
|  | ||||
| fix_value = 0.5  # 画这个值附近的等高线 | ||||
| precision = 0.01 # 选取该值附近的范围 | ||||
|  | ||||
| # 方法一 | ||||
| x_array_new = [] | ||||
| y_array_new = [] | ||||
| for i0 in range(y_array.shape[0]): | ||||
|     for j0 in range(x_array.shape[0]): | ||||
|         if abs(z_matrix[i0, j0]-fix_value)<precision: | ||||
|             x_array_new.append(x_array[j0]) | ||||
|             y_array_new.append(y_array[i0]) | ||||
| fig, ax = plt.subplots() | ||||
| plt.plot(x_array_new, y_array_new, 'o') | ||||
| ax.set_xlim(min(x_array), max(x_array)) | ||||
| ax.set_ylim(min(y_array), max(y_array)) | ||||
| plt.show() | ||||
|  | ||||
| # 方法二 | ||||
| for i0 in range(y_array.shape[0]): | ||||
|     for j0 in range(x_array.shape[0]): | ||||
|         if abs(z_matrix[i0, j0]-fix_value)>precision: | ||||
|             z_matrix[i0, j0] = None | ||||
| fig, ax = plt.subplots() | ||||
| ax.contourf(x_array,y_array,z_matrix)  | ||||
| plt.show() | ||||
		Reference in New Issue
	
	Block a user