При визуализации данных цветовые карты используются для представления числовых данных посредством цвета. Однако иногда распределение данных может быть нелинейным, что может затруднить различение деталей данных. В таких случаях можно использовать нормализацию цветовых карт для отображения цветовых карт на данные нелинейным способом, чтобы помочь более точно визуализировать данные. Matplotlib предоставляет несколько методов нормализации, включая SymLogNorm и AsinhNorm, которые можно использовать для нормализации цветовых карт. В этой лабораторной работе будет продемонстрировано, как использовать SymLogNorm и AsinhNorm для сопоставления цветовых карт с нелинейными данными.
После завершения запуска виртуальной машины щелкните верхний левый угол, чтобы переключиться на вкладку Блокнот для доступа к блокноту Jupyter для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook завершит загрузку. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если у вас возникнут проблемы во время обучения, не стесняйтесь спросить Лабби. Оставьте отзыв после сеанса, и мы оперативно решим вашу проблему.
На этом этапе мы импортируем необходимые библиотеки, включая цвета Matplotlib, NumPy и Matplotlib.
import matplotlib.pyplot as plt import numpy as np import matplotlib.colors as colors
На этом этапе мы создадим синтетический набор данных, состоящий из двух выступов, одного отрицательного и одного положительного, причем положительный выступ будет иметь амплитуду в восемь раз большую, чем отрицательный. Затем мы применим SymLogNorm для визуализации данных.
def rbf(x, y): return 1.0 / (1 5 * ((x ** 2) (y ** 2))) N = 200 gain = 8 X, Y = np.mgrid[-3:3:complex(0, N), -2:2:complex(0, N)] Z1 = rbf(X 0.5, Y 0.5) Z2 = rbf(X - 0.5, Y - 0.5) Z = gain * Z1 - Z2 shadeopts = {'cmap': 'PRGn', 'shading': 'gouraud'} colormap = 'PRGn' lnrwidth = 0.5
На этом этапе мы применим SymLogNorm к синтетическим данным и визуализируем результаты.
fig, ax = plt.subplots(2, 1, sharex=True, sharey=True) pcm = ax[0].pcolormesh(X, Y, Z, norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1, vmin=-gain, vmax=gain, base=10), **shadeopts) fig.colorbar(pcm, ax=ax[0], extend='both') ax[0].text(-2.5, 1.5, 'symlog') pcm = ax[1].pcolormesh(X, Y, Z, vmin=-gain, vmax=gain, **shadeopts) fig.colorbar(pcm, ax=ax[1], extend='both') ax[1].text(-2.5, 1.5, 'linear') plt.show()
На этом этапе мы применим AsinhNorm к синтетическим данным и визуализируем результаты.
fig, ax = plt.subplots(2, 1, sharex=True, sharey=True) pcm = ax[0].pcolormesh(X, Y, Z, norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1, vmin=-gain, vmax=gain, base=10), **shadeopts) fig.colorbar(pcm, ax=ax[0], extend='both') ax[0].text(-2.5, 1.5, 'symlog') pcm = ax[1].pcolormesh(X, Y, Z, norm=colors.AsinhNorm(linear_width=lnrwidth, vmin=-gain, vmax=gain), **shadeopts) fig.colorbar(pcm, ax=ax[1], extend='both') ax[1].text(-2.5, 1.5, 'asinh') plt.show()
В этой лабораторной работе мы научились использовать SymLogNorm и AsinhNorm для сопоставления цветовых карт с нелинейными данными. Применяя эти методы нормализации, мы можем более точно визуализировать данные и легче различать детали данных.
? Попрактикуйтесь сейчас: нормализация цветовой карты Matplotlib
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3