Колчан 3d (python matplotlib): как получить одинаковый цвет для вала стрелы и головки стрелы? (Дрожащий баг?) - PullRequest
0 голосов
/ 04 мая 2020

Программа ниже отображает 3d стрелки. Я устанавливаю цвет для стрелок в зависимости от высоты (координата z).

ЧТО РАБОТАЕТ: Валы со стрелками получают правильный цвет

ПРОБЛЕМА: Головки стрелок (полностью или частично) приобретают другой цвет. Уродливый.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
import matplotlib.cm as cm

n = 5
n3 = n*n*n
u, v, w = np.arange(n3), np.arange(n3), np.arange(n3)  # Positions
x, y, z = np.arange(n3), np.arange(n3), np.arange(n3)  # Vector components
colors = [(0, 0, 255)]*n3
mid = n/2
for i in range(n):
    for j in range(n):
        for k in range(n):
            ii = i*n*n + j*n + k
            u[ii], v[ii], w[ii] = -(j-mid), i-mid, 0   # Whorl
            x[ii], y[ii], z[ii] = i, j, k
            colors[ii] = (1, 0, 0)
            if abs(k-(n-1)/2) < 1.1: colors[ii] = (0, 1, 0)
            if abs(k-(n-1)/2) < 0.1: colors[ii] = (0, 0, 1)

figure = plt.figure()
axes = figure.gca(projection='3d')  # gca = get/create current axes

q = axes.quiver(x, y, z, u, v, w, color=colors, length = 0.5, normalize=True)
plt.show()  # Finally display the plot

Выход: Output from the code above

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...