#python #matplotlib
#python #matplotlib
Вопрос:
У меня есть следующая среда построения графика
fig = plt.figure(figsize=(15,15))
fig.tight_layout()
ax1 = plt.subplot2grid(shape=(4, 4), loc=(0, 0), colspan=2,rowspan =2)
ax2 = plt.subplot2grid(shape=(4, 4), loc=(0, 2),colspan=2, rowspan =2)
А также есть вызываемая функция plot_curve_and_boundary(cordinates_of_boundary,ref_curve)
, которая выдает график, который мне нужен.
Мой вопрос в том, возможно ли получить вывод функции в ax1
Что-то вроде ax1.plot_curve_and_boundary(cordinates_of_boundary,ref_curve)
(конечно, этот код не работает)
Ценю вашу помощь
Редактировать
Это тот, plot_curve_and_boundary(cordinates_of_boundary,ref_curve)
который я написал для своего проекта. И ниже приведен код этой функции
def plot_curve_and_boundary(cordinates_of_boundary,curve):
"""
Input the cordinates of the boundary as an numpy array
Eg: np.array([[0,0],[6,0],[6,6],[0,6],[0,0]])
Input the required curve as a dictionary.
For the curve you need:
L_vector,angles, initial point x0 and the initial angle theta_0
You get the image of the boundary and the curve.
"""
L_vector = curve.get("lengths")
theta_vector = curve.get("angles")
x0 = curve.get("initial_pt")
theta_0 = curve.get("theta_0")
points_in_the_path=points_in_the_wire(x0,theta_0,theta_vector,L_vector)
#For the plot:
boundary_x,boundary_y = zip(*cordinates_of_boundary)
path_x,path_y = zip(*points_in_the_path)
all_x_values = [*boundary_x,*path_x]
all_y_values = [*boundary_y,*path_y]
x_min =min(all_x_values)-1
x_max =max(all_x_values) 1
y_min =min(all_y_values)-1
y_max =max(all_y_values) 1
fig = plt.figure(figsize=(8,8))
#fig = plt.figure()
plt.suptitle("Curve and the boundary")
ax = fig.add_subplot(1,1,1)
ax.set_xlim([min(x_min,y_min),max(x_max,y_max)])
ax.set_ylim([min(x_min,y_min),max(x_max,y_max)])
ax.plot(boundary_x,boundary_y)
ax.plot(path_x,path_y,color='red',marker='*')
return fig
Комментарии:
1. Неясно, как и где
plot_curve_and_boundary
это реализовано. Это одна из ваших собственных функций? Или это внутри какой-то библиотеки? Стандартным способом для функций этого типа является предоставление параметраplot_curve_and_boundary(..., ax=ax1)
, указывающего, на каком подзаголовке создавать график.2. @BigBen и Йохан Я отредактировал сообщение. Это функция, которую я написал