Black Lives Matter. Please consider donating to Campaign Zero's mission of ending police violence in America.
https://www.joincampaignzero.org

Help with creating a 3d surface using a complex formula

Hi guys,

I have made the move from matlab to plotly, and I am trying to create a 3d surface from a complex equation.

Below is what I have so far, but here’s what I want. I want to graph a formula which is essentially based on other formulas which are graphed at different ranges of y value. Kinda like this:

Formula 1 = x
Formula 2 = x^2
Formula 3 = x*3

Main formula = formula 1 (from y = 0 to 4) + formula 2 (from y = 4 to 7) + formula 3 (from y = 7 to 10)

Any thoughts on how I can do this?

Here’s what I have so far:

from plotly import __version__
from plotly.offline import download_plotlyjs, init_notebook_mode, iplot
from plotly.graph_objs import *
#import plotly.plotly as py
#import plotly.graph_objs as go
from plotly import tools

import numpy as np
init_notebook_mode()

x = np.linspace(0, 10, 40)
y = np.linspace(0, 10, 40)
xGrid, yGrid = np.meshgrid(y, x)
z = xGrid ** 1 + yGrid ** 1

scene = dict(
    xaxis=dict(
        gridcolor='rgb(255, 255, 255)',
        zerolinecolor='rgb(255, 255, 255)',
        showbackground=True,
        backgroundcolor='rgb(230, 230,230)'
    ),
    yaxis=dict(
        gridcolor='rgb(255, 255, 255)',
        zerolinecolor='rgb(255, 255, 255)',
        showbackground=True,
        backgroundcolor='rgb(230, 230,230)'
    ),
    zaxis=dict(
        gridcolor='rgb(255, 255, 255)',
        zerolinecolor='rgb(255, 255, 255)',
        showbackground=True,
        backgroundcolor='rgb(230, 230,230)'
    )
)

fig = tools.make_subplots(rows=1, cols=1,
                          specs=[[{'is_3d': True}]])

# adding surfaces to subplots.
fig.append_trace(dict(type='surface', x=x, y=y, z=z, colorscale='RdBu',
                      scene='scene1', showscale=False), 1, 1)

fig['layout'].update(title='Surface',
                     height=800, width=800)
fig['layout']['scene1'].update(scene)

iplot(fig)