Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Bug Report: go.Surface doesn't show the outthrust value! #5229

Open
Labels
P1needed for current cycle bugsomething broken
@lhg1992

Description

I'm coming to report another bug on the go.Surface.
As the code shown below, you can easily get the bug.
The plotly go.Surface only plots the Contour_Val in rectangular shape. It completely ignores those outthrust values in the 'Contour_Val' matrix.

The Matplotlib shows the correct surface(or contour).

import numpy as np
X=np.array([
 [7800., 7900., 8000., 8100., 8200., 8300., 8400., 8500.],
 [7800., 7900., 8000., 8100., 8200., 8300., 8400., 8500.],
 [7800., 7900., 8000., 8100., 8200., 8300., 8400., 8500.],
 [7800., 7900., 8000., 8100., 8200., 8300., 8400., 8500.],
 [7800., 7900., 8000., 8100., 8200., 8300., 8400., 8500.],
 [7800., 7900., 8000., 8100., 8200., 8300., 8400., 8500.],
 [7800., 7900., 8000.00, 8100.00, 8200., 8300., 8400., 8500.],
 [7800., 7900.00, 8000.00, 8100., 8200., 8300., 8400., 8500.],
 [7800., 7900., 8000.00, 8100., 8200., 8300., 8400., 8500.],
 [7800., 7900., 8000., 8100., 8200., 8300., 8400., 8500.],
 [7800., 7900., 8000., 8100., 8200., 8300., 8400., 8500.]])
Y=np.array([
 [3800., 3800., 3800., 3800., 3800., 3800., 3800., 3800.],
 [3900., 3900., 3900., 3900., 3900., 3900., 3900., 3900.],
 [4000., 4000., 4000., 4000., 4000., 4000., 4000., 4000.],
 [4100., 4100., 4100., 4100., 4100., 4100., 4100., 4100.],
 [4200., 4200., 4200., 4200., 4200., 4200., 4200., 4200.],
 [4300., 4300., 4300., 4300., 4300., 4300., 4300., 4300.],
 [4400., 4400., 4400.00, 4400.00, 4400., 4400., 4400., 4400.],
 [4500., 4500.00, 4500.00, 4500., 4500., 4500., 4500., 4500.],
 [4600., 4600., 4600.00, 4600., 4600., 4600., 4600., 4600.],
 [4700., 4700., 4700., 4700., 4700., 4700., 4700., 4700.],
 [4800., 4800., 4800., 4800., 4800., 4800., 4800., 4800.]])
Contour_Val= np.array([
 [ np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan],
 [ np.nan, np.nan, np.nan, 12169.04428749, np.nan, np.nan, np.nan, np.nan],
 [ np.nan, np.nan, np.nan, 12128.33946596, 12114.37604446, np.nan, np.nan, np.nan],
 [ np.nan, np.nan, 12146.50058674, 12110.75061221, 12094.0645444 , np.nan, np.nan, np.nan],
 [ np.nan, np.nan, 12154.96379352, 12116.42568321, np.nan, np.nan, np.nan, np.nan],
 [ np.nan, np.nan, 12186.79247811, 12145.38853514, np.nan, np.nan, np.nan, np.nan],
 [ np.nan, np.nan, 12241.85245564, 12197.51679624, np.nan, np.nan, np.nan, np.nan],
 [ np.nan, 12385.14869121, 12319.78169639, np.nan, np.nan, np.nan, np.nan, np.nan],
 [ np.nan, np.nan, 12419.96884955, np.nan, np.nan, np.nan, np.nan, np.nan],
 [ np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan],
 [ np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]])
# %% matplotlib version
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1, projection='3d')
ax.set_proj_type('ortho') 
ax.axis('equal')
surf = ax.contourf(X, Y, Contour_Val, zdir='z', 
 offset=50, # plot at z=offset
 cmap='jet')
ax.set_xlim([X.min(), X.max()])
ax.set_ylim([Y.min(), Y.max()])
ax.set_zlim([0, 100])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.view_init(elev=90, azim=0)
# show the figure
plt.show()
# %% plotly version
'''
bug: the outthrust values are not plotted!
'''
import plotly.graph_objects as go
plotz=50
Z=np.full_like(Contour_Val, plotz)
mask = np.isnan(Contour_Val) # mask for NaN values
Z[mask]=np.nan # apply mask to Z
fig = go.Figure()
fig.add_trace( go.Surface(
 x=X.round(2), 
 y=Y.round(2), 
 z=Z.round(2),# plot contour on the plane z=plotz
 surfacecolor=Contour_Val, # use Contour_Val as the surface color
 text=Contour_Val.round(2),
 name='contour',
 
 colorscale='jet',
 showscale=True,
 opacity=0.8, # <1 to make the contour plane semi-transparent
 hoverinfo='x+y+text+name', # works well
))
fig.show()

Matplotlib version (correct):

Image

Plotly version (wrong):

Image

only those values which form a regular rectangular shape in the matrix are effective in go.Surface plot:

Image

Solution suggestion:
Either modify the go.Surface or the go.Contour to make it possible to plot the 2D contour on any plane in a 3D figure.

Hope this issue can be solved together with [#5157] soon. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1needed for current cycle bugsomething broken

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /