Использование scipy.spatial.Delaunay вместо встроенной версии matplotlib.tri.Triangulation

Кажется, что matplotlib.tri.Triangulation использует matplotlib.tri.Triangulation и, возможно, неправильную реализацию триангуляции Delaunay, которая должна быть заменена на qHull .

Я пытаюсь построить trisurf, используя mpl_toolkits.mplot3d.plot_trisurf() и запуская кучу исключений, которые бесполезны ( IndexError s и KeyError основном, без указания того, что точно пошло не так).

Поскольку scipy.spatial.Delaunay уже использует qHull, мне было интересно, есть ли способ создать объект matplotlib.tri.Triangulation для использования с mpl_toolkits.mplot3d.plot_trisurf() используя реализацию Scipy триангуляции Delaunay.

Я пробовал передать delaunay.points непосредственно в matplotlib.tri.Triangulate через параметр triangles , но это приводит к тому, что элемент ValueError: triangles min element is out of bounds .

One Solution collect form web for “Использование scipy.spatial.Delaunay вместо встроенной версии matplotlib.tri.Triangulation”

http://docs.scipy.org/doc/scipy-0.13.0/reference/generated/scipy.spatial.Delaunay.html http://matplotlib.org/dev/api/tri_api.html

Поэтому вам нужно передать обе точки и треугольники из qhull в конструктор Triangulation :

 import numpy as np import scipy.spatial import matplotlib import math import matplotlib.tri as mtri import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # First create the x and y coordinates of the points. n_angles = 20 n_radii = 10 min_radius = 0.15 radii = np.linspace(min_radius, 0.95, n_radii) angles = np.linspace(0, 2*math.pi, n_angles, endpoint=False) angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1) angles[:, 1::2] += math.pi/n_angles x = (radii*np.cos(angles)).flatten() y = (radii*np.sin(angles)).flatten() # Create the Delaunay tessalation using scipy.spatial pts = np.vstack([x, y]).T tess = scipy.spatial.Delaunay(pts) # Create the matplotlib Triangulation object x = tess.points[:, 0] y = tess.points[:, 1] tri = tess.vertices # or tess.simplices depending on scipy version triang = mtri.Triangulation(x=pts[:, 0], y=pts[:, 1], triangles=tri) # Plotting z = x*x + y*y fig = plt.figure() ax = fig.gca(projection='3d') ax.plot_trisurf(triang, z) plt.show() 

выход (с ведущим током matplotlib): введите описание изображения здесь

  • обновить артист (Line2D) на фигуре без повторного рисования всей фигуры - сбрасывается axes.draw_artist ()
  • Интеграл функции Intensity в python
  • Как ускорить создание матрицы перехода в Numpy?
  • коэффициенты интерполяции сплайна в scipy
  • Построение данных с прокручиваемой осью x (время / горизонталь) на Linux
  • построение 3d гистограммы / barplot в python matplotlib
  • Двукратная бесплатная ошибка Python для огромных наборов данных
  • Значение P из статистики теста Chi sq в Python
  •  
    Interesting Posts for Van-Lav

    Два класса со структурно идентичным методом, но одна именованная переменная

    SymPy / SciPy: решение системы обыкновенных дифференциальных уравнений с различными переменными

    построение 2D-матрицы в python, код и наиболее полезную визуализацию

    Как запускать скрипты python на веб-сервере (например, localhost)

    pandas reindex DataFrame с объектами datetime

    Как удалить строку из файла в python

    Импортировать файл Python из исполняемого скрипта

    Python-Sphinx: как документировать один файл с функциями?

    Как автоматически отражать базу данных в sqlalchemy декларативной?

    Обнаружение текстовой области в изображении с использованием python и opencv

    Проблемы с маршрутизацией URL-адресов с использованием CGI и Bottle.py

    Запустите Python unittest, чтобы при печати ничего не печаталось, только AssertionError ()

    Параметр $ _SERVER vs. WSGI

    Не удалось скомпилировать pyglpk на OSX 10.8 / Ubuntu 14.x

    найти числовые столбцы в pandas (python)

    Python - лучший язык программирования в мире.