Построение сплошной революции в Python 3 (возможно, matplotlib)

Приветствую проблему:

R – область в плоскости xy, ограниченная параболой y = x ^ 2 + 1 и линией y = x + 3. Твердое тело вращения образуется путем вращения R вокруг оси x. Мне нужно построить параболу и линию в 2D и сплошной революции 3D, как это сделать? Я установил anaconda.

One Solution collect form web for “Построение сплошной революции в Python 3 (возможно, matplotlib)”

Вы можете использовать plot_surface :

 import numpy as np import matplotlib.pyplot as plt import mpl_toolkits.mplot3d.axes3d as axes3d fig = plt.figure() ax = fig.add_subplot(1, 1, 1, projection='3d') u = np.linspace(-1, 2, 60) v = np.linspace(0, 2*np.pi, 60) U, V = np.meshgrid(u, v) X = U Y1 = (U**2 + 1)*np.cos(V) Z1 = (U**2 + 1)*np.sin(V) Y2 = (U + 3)*np.cos(V) Z2 = (U + 3)*np.sin(V) ax.plot_surface(X, Y1, Z1, alpha=0.3, color='red', rstride=6, cstride=12) ax.plot_surface(X, Y2, Z2, alpha=0.3, color='blue', rstride=6, cstride=12) plt.show() 

введите описание изображения здесь

Для построения поверхности с использованием plot_surface вы начинаете с определения двух одномерных параметров u и v :

 u = np.linspace(-1, 2, 60) v = np.linspace(0, 2*np.pi, 60) 

такие, что x , y , z являются функциями параметров u и v :

 x = x(u, v) y = y(u, v) z = z(u, v) 

То, что следует заметить в ax.plot_surface состоит в том, что его первые три аргумента должны быть двумерными массивами. Поэтому мы используем np.meshgrid для создания координатных матриц ( U и V ) из векторов координат ( u и v ) и определяем двумерные массивы X , Y , Z как функции U и V :

 X = U Y1 = (U**2 + 1)*np.cos(V) Z1 = (U**2 + 1)*np.sin(V) 

Для каждого места на координатных матрицах U и V имеется соответствующее значение для X и Y и Z Это создает карту из двумерного uv пространства в трехмерное xyz пространство. Для каждого прямоугольника в uv пространстве на нашей поверхности есть грань в xyz пространстве. Изогнутая поверхность, нарисованная поверхностью plot_surface , состоит из этих плоских граней.

  • Переопределение метода __contains__ для класса
  • вернуть значение из одного скрипта python в другое
  • Проверьте идеальные квадраты в списке
  • Должен ли я ждать, пока Django начнет поддерживать Python 3?
  • Ошибка атрибута Intuar Tkinter Attribute
  • Обработка сигналов в Windows
  • Как освободить память удаленного объекта python?
  • Несколько версий python с использованием virtualenv -p (и virtualenvwrapper-win) в Windows
  • Не удалось получить сообщения gmail из любой папки, кроме папки «Входящие» (проблема Python3)
  • Что означает префикс ab перед строкой python?
  • "Выход из итерируемого" vs "return iter (iterable)"
  •  
    Interesting Posts for Van-Lav

    Эффективно использовать Google App Engine для отправки большого количества писем с помощью PHP?

    Как добавить свойство в класс динамически?

    Можно ли получить доступ к ключевому имени объекта изнутри шаблона jinja2?

    Odoo 9 Как создать действие на пользовательской кнопке

    SSLError: невозможно подключиться к URL-адресу HTTPS, потому что модуль SSL недоступен в Google App Engine

    Как написать метакласс, который предотвратит создание новых атрибутов после __init __ ()?

    Errbot: получение ошибки yapsy при попытке настроить плагины через интерфейс командной строки

    Ошибка Python 2.7 super ()

    Применение форматирования по строкам в дополнение к форматированию столбцов с помощью xlsxwriter

    Как переключить backend в matplotlib / Python

    Python – чтение из последовательного порта данных по строкам в список, если доступно

    Python – IOError: Нет такого файла или каталога: u'lastid.py 'для файла в том же каталоге. Работает на месте, не на Хереку

    Вход одиночного символа в Pydev / Eclipse

    Обработка искаженных текстовых данных с помощью машинного обучения или НЛП

    Запросы Django: как сделать содержит OR not_contains queries

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