#python-3.x #jupyter-notebook #convex-hull
#python-3.x #jupyter-ноутбук #выпуклая оболочка
Вопрос:
Что-то, что ускользает от меня…
Когда я запускаю первую приведенную ниже программу в записной книжке Jupyter:
import numpy as np
from numpy import random
from scipy.spatial import ConvexHull
import matplotlib.pyplot as plt
points = np.random.rand(30, 2)
hull = ConvexHull(points)
plt.plot(points[:,0], points[:,1], 'o')
for simplex in hull.simplices:
plt.plot(points[simplex,0], points[simplex,1], 'k-')
Я получаю, как и ожидалось, график точек и выпуклой оболочки:
И когда после этого я запускаю вторую программу ниже:
import numpy as np
from numpy import random
from scipy.spatial import ConvexHull, convex_hull_plot_2d
points = np.random.rand(30, 2)
hull = ConvexHull(points)
convex_hull_plot_2d(hull)
Я получаю двойной график!
Чего мне не хватает?
Комментарии:
1. Можете ли вы уточнить? Есть ли две оси на одном рисунке? Отображается ли один и тот же график на двух рисунках? Запуск ваших программ по отдельности создает только один график. Вы запустили первый, затем второй? Потому что, если вы это сделали, тогда, конечно , это создаст два графика — один из первого кода, один из второго.
2. Да, я запустил первый, затем второй. Это происходит от этого? Но как это возможно? Я воссоздаю новые точки и новую оболочку…
3. Я не знал, что вы запустили весь второй код. Вы уверены, что это весь второй код? Я запустил его, и я получаю один график i.stack.imgur.com/jbWlb.png
4. Это действительно происходит. Я открыл записную книжку Jupyter и записал эти 2 фрагмента кода в 2 разных ячейках. Запуск первой ячейки дает один график (с некоторыми случайными точками). Послесловие, запуск второй ячейки дает мне 2 одинаковых графика (с, конечно, некоторыми другими случайными точками).
5. Всегда добавляйте
plt.show()
, когда будете готовы к построению графика.