Как устранить видимые края на графике Matplotlib Procolormesh?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как устранить видимые края на графике Matplotlib Procolormesh?

Сообщение Anonymous »

Я работаю с Matplotlib, чтобы создать визуализацию высоты с использованием Procolormesh, но я сталкиваюсь с проблемой, в которой края сетки сетки видны в выходном изображении, несмотря на установку edgecolors = 'none'. Это приводит к нежелательному каркасному внешнему виду на графике рядом с краем цветового партия. Я пытаюсь достичь гладкой, непрерывной визуализации поверхности.
Image < /p>
Несмотря на установку edgecolors = 'none' и тестирование с Rasterized = true, каркас по -прежнему появляется на сохраненной рисунке. Я также попытался увеличить разрешение и настройку Colormap. Когда я устанавливаю цветную карту на 50% непрозрачности, я вижу, что сетка проходит через мою коллеги. Как на этом рисунке показывает (с viridis и alpha = 0,5) изображение < /p>
Как я могу удалить или скрыть эти сетчатые ребра для достижения полностью плавной поверхности? /> Вот упрощенная версия моего кода, которая показывает тот же артефакт, если вы приближаетесь к краю: < /p>
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
from scipy.interpolate import griddata
from os.path import join

# Sample data for demonstration
x = np.random.rand(1000)
y = np.random.rand(1000) * 100 # Y values scaled to simulate height data
z = np.random.rand(1000)

# Convert data to NumPy arrays
x_np = np.array(x)
y_np = np.array(y)
z_np = np.array(z)

# Define grid resolution
heightmap_resolution = (512, 512)

# Create a grid
grid_x, grid_z = np.meshgrid(np.linspace(np.min(x_np), np.max(x_np), heightmap_resolution[0]),
np.linspace(np.min(z_np), np.max(z_np), heightmap_resolution[1]))

# Interpolate Y values on the grid
points = np.column_stack((x_np, z_np))
grid_y = griddata(points, y_np, (grid_x, grid_z), method='cubic')

# Plot setup
fig_width, fig_height = 210 / 25.4, 297 / 25.4 # Dimensions in inches
dpi = 1440 # High DPI for detailed output

fig = plt.figure(figsize=(fig_width, fig_height), dpi=dpi)
ax = fig.add_axes([0, 0, 1, 1]) # Use full area of the figure
cmap = LinearSegmentedColormap.from_list('mycmap', ['white', 'black'])
c = ax.pcolormesh(grid_x, grid_z, grid_y, cmap=cmap, shading='gouraud', edgecolors='none', rasterized=True)
ax.axis('off') # Turn off the axis

# Save the figure
output_dir = r"C:\test" #CHANGE THIS PATH
heightmap_name = 'out_plot_height_map.png'
plt.savefig(join(output_dir, heightmap_name), format='png', dpi=dpi, bbox_inches='tight', pad_inches=0)
plt.close(fig)
< /code>
Я попробовал этот код, но этот «пикселат» вывод. Мне нужен градиент, который поставляется с Shading = 'guraud', так как эта высота будет использоваться на стадии производства, и шаги образуют пиксели, которые не являются jo < /p>
fig, ax = plt.subplots(figsize=(fig_width, fig_height), dpi=dpi)
im = ax.imshow(grid_y, extent=[np.min(x_np), np.max(x_np), np.min(z_np), np.max(z_np)], interpolation='bicubic', cmap='viridis', aspect='auto')
ax.axis('off')
plt.savefig(join(output_dir, heightmap_name), format='png', dpi=dpi, bbox_inches='tight', pad_inches=0)
plt.close(fig)


Подробнее здесь: https://stackoverflow.com/questions/785 ... rmesh-plot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как устранить видимые края на графике Matplotlib Procolormesh?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как устранить видимые края на графике Matplotlib Procolormesh?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Видимые серые края внутри HTML-Canvas
    Anonymous » » в форуме Javascript
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как настроить содержимое доверенных веб-действий «от края до края» (за строкой состояния)
    Гость » » в форуме Android
    0 Ответы
    133 Просмотры
    Последнее сообщение Гость
  • Compose: Как иметь отступы ime и Scaffold с отступом от края до края, а windowSoftInputMode настроен на настройкуResize
    Anonymous » » в форуме Android
    0 Ответы
    109 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»