Matplotlib делает цветную карту не прозрачной - PullRequest
0 голосов
/ 21 февраля 2019
def visualize(goal_x, goal_y, goal_z, epoch_arr):
    # %% Create Color Map
    colormap = plt.get_cmap("binary")
    norm = matplotlib.colors.Normalize(vmin=min(epoch_arr), vmax=max(epoch_arr))

    # %% 3D Plot
    fig = plt.figure()
    ax3D = fig.add_subplot(111, projection='3d')
    ax3D.set_facecolor('xkcd:salmon')

    ax3D.scatter(goal_x, goal_y, goal_z, s=100, c=colormap(norm(epoch_arr.values)), marker='o')

    plt.show()

Приведенный выше код дает следующее изображение: enter image description here

Однако, как вы можете видеть, в правой части есть точка, которая явно не равна 100%непрозрачный.Вы можете видеть линии сетки через точку.Как сделать точки рассеяния на 100% непрозрачными, без прозрачности?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Настройка alpha=1 должна быть достаточной.

ax3D.scatter(..., alpha=1)

В качестве альтернативы установите depthshade=False

ax3D.scatter(..., depthshade=False)

Результат будет одинаковым в обоих случаях.

enter image description here

0 голосов
/ 21 февраля 2019

Некоторые трюки помогут.Здесь я сначала нанесу все маркеры белым цветом, а затем снова нанесу сверху нужный цвет.

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# make-up some data
goal_x = list(range(10))
goal_y = list(range(10))
goal_z = list(range(10))
epoch_arr = np.linspace(0,1,10)

fig = plt.figure(figsize=(8,8))
ax3D = fig.add_subplot(111, projection='3d')
ax3D.set_facecolor('xkcd:salmon')

# First plot: all markers are in white color
ax3D.scatter(goal_x, goal_y, goal_z, s=500, c='w', marker='o', alpha=1.0, zorder=10)

colormap = plt.get_cmap("binary")
norm = matplotlib.colors.Normalize(vmin=min(epoch_arr), vmax=max(epoch_arr))
#ax3D.scatter(goal_x, goal_y, goal_z, s=100, c=colormap(norm(epoch_arr.values)), marker='o')

# Second plot: use intended colormap
ax3D.scatter(goal_x, goal_y, goal_z, s=500, c='b', marker='o', zorder=11)

plt.show()

Получившийся график:

enter image description here

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