Мне нужна помощь в том, как создавать красивые векторные изображения таких тем:
Я много работаю с LaTeX, когда дело доходит до набора текста, поэтому у меня есть базовый опыт работы с Tikz. Однако я чувствую, что если мне нужно сделать сложные изображения, подобные приведенным выше, я немного теряюсь.
Я был бы очень признателен, если бы кто-нибудь мог указать мне правильное направление относительно того, как я могу делать такие изображения, предпочтительно с использованием бесплатного программного обеспечения.
Доступны графические приложения, выполняющие векторный вывод. Я довольно успешно использовал следующие приложения:
Возможно, вам придется использовать 3D-приложения или графические приложения, я предлагаю:
Обычно более продуктивно использовать какой-либо инструмент, который может на самом деле отображать вещи в качестве основы, а затем импортировать файл EPS в инструмент для художников-графиков, такой как иллюстратор, для последующей доработки. Настоящим преимуществом является то, что вы можете поиграть с графиками, прежде чем приступить к работе, поэтому их легко изменить.
Кроме того, вы можете самостоятельно рисовать в Illustrator, если хотите, некоторый код , который поможет вам в этом.
Вот краткий список вещей, пока у меня не будет времени найти несколько подходящих примеров (ламинарный поток справа).
Некоторые примеры с похожими компонентами (вам может понадобиться добавить больше, но вот некоторые части головоломки):
Лучше всего взять векторный редактор и научиться им пользоваться. Приведенные выше примеры не кажутся сложными, и базовые знания о рисовании векторов вполне справятся с этой задачей.
Если вы будете пробовать один из них, я бы посоветовал не использовать Illustrator или Corel Draw. Хотя оба являются мощными и популярными инструментами выбора, они кажутся сложными для новичка. Inkscape — хороший выбор. Это бесплатно, и изучение этого не должно быть проблемой.
Первый: .PY + Matplotlib -> .SVG
Затем .SVG -> Inkskape
Тем не менее, .SVG достаточно легко научиться переходить из .PY -> .SVG.
Вы также можете сделать .PY + Matplotlib -> .PDF. Inkscape откроет и это.
Отказ от ответственности:
Теперь более надежный ответ: (Не то чтобы мне нравилось делать домашнюю работу для кандидатов наук...)
Все здесь было украдено — полностью украдено — с веб-сайта matplotlib (см. Примеры) и из Stack Overflow (matplotlib сохраняет обрезку рисового изображения). Все, что я сделал, это скопировал/вставил его и проверил.
Полученный файл out.svg можно открыть непосредственно в Inkscape. Изображение представляет собой группу/группы изображений меньшего размера. Нажмите на любую часть изображения, затем используйте параметр Inkscape «Разгруппировать». Возможно, вам придется разгруппировать несколько раз, чтобы иметь возможность напрямую манипулировать частью изображения.
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
fig.colorbar(surf, shrink=0.5, aspect=5)
#plt.show()
fig.set_size_inches(4,3)
fig.set_dpi(40)
fig.savefig('out.svg', transparent=True, bbox_inches='tight', pad_inches=0)
Райан
Диполь
джуджа
Диполь
джуджа