Skip to content

3D collections do not proper handle edgecolor='face' #18931

Closed
@tacaswell

Description

@tacaswell

Bug report

Bug summary

If the edge color is 'face' on some (all?) of the 3D version of the collections we lose that fact and end up "locking in" the first colors that we render.

Code for reproduction

This test currently fails, it should pass. The issue (once #18929 is merged) fails due to the edges still being jet colored.

@pytest.mark.style('default')
@check_figures_equal(extensions=["png"])
def test_scalarmap_change_cmap(fig_test, fig_ref):

    x, y, z = np.array((list(itertools.product(*[np.arange(0, 5, 1),
                                                 np.arange(0, 5, 1),
                                                 np.arange(0, 5, 1)])))).T
    c = x + y

    # test
    ax_test = fig_test.add_subplot(111, projection='3d')
    sc_test = ax_test.scatter(x, y, z, c=c, s=40, cmap='jet')
    # force a draw
    fig_test.canvas.draw()

    sc_test.set_cmap('viridis')

    # ref
    ax_ref = fig_ref.add_subplot(111, projection='3d')
    sc_ref = ax_ref.scatter(x, y, z, c=c, s=40, cmap='viridis')

Matplotlib version

  • Operating system: any
  • Matplotlib version: default branch
  • Matplotlib backend (print(matplotlib.get_backend())): any
  • Python version: any
  • Jupyter version (if applicable): any
  • Other libraries: --

This is a good first issue because there is no API design, but medium difficulty because it will require splunking through the mplot3D code and deciding the best way to do the book keeping that the edgecolors may be "face" (which means "what ever the face colors are").

Metadata

Metadata

Assignees

No one assigned

    Labels

    Difficulty: Mediumhttps://matplotlib.org/devdocs/devel/contribute.html#good-first-issuesGood first issueOpen a pull request against these issues if there are no active ones!topic: mplot3d

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions