#!/usr/bin/env python # coding: utf-8 # #### New to Plotly? # Plotly's Python library is free and open source! [Get started](https://plotly.com/python/getting-started/) by downloading the client and [reading the primer](https://plotly.com/python/getting-started/). #
You can set up Plotly to work in [online](https://plotly.com/python/getting-started/#initialization-for-online-plotting) or [offline](https://plotly.com/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plotly.com/python/getting-started/#start-plotting-online). #
We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! # #### Version Check # Plotly's python package is updated frequently. Run `pip install plotly --upgrade` to use the latest version. # In[1]: import plotly plotly.__version__ # ### Basic Carpet Plot # # Set the `x` and `y` coorindates, using `x` and `y` attributes. If `x` coorindate values are ommitted a cheater plot will be created. To save parameter values use `a` and `b` attributes. To make changes to the axes, use `aaxis` or `baxis` attributes. For a more detailed list of axes attributes refer to [python reference](https://plotly.com/python/reference/#carpet-aaxis). # In[2]: import plotly.graph_objs as go import plotly.plotly as py trace1 = go.Carpet( a = [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], b = [4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6], x = [2, 3, 4, 5, 2.2, 3.1, 4.1, 5.1, 1.5, 2.5, 3.5, 4.5], y = [1, 1.4, 1.6, 1.75, 2, 2.5, 2.7, 2.75, 3, 3.5, 3.7, 3.75], aaxis = dict( tickprefix = 'a = ', smoothing = 0, minorgridcount = 9, type = 'linear' ), baxis = dict( tickprefix = 'b = ', smoothing = 0, minorgridcount = 9, type = 'linear' ) ) data = [trace1] layout = go.Layout( margin = dict( t = 40, r = 30, b = 30, l = 30 ), yaxis = dict( range = [0.388,4.361] ), xaxis = dict( range = [0.667,5.932] ) ) fig = go.Figure(data = data, layout = layout) py.iplot(fig, filename = "contourcarpet/basic") # ### Add Contours # In[3]: import plotly.graph_objs as go import plotly.plotly as py trace1 = go.Contourcarpet( a = [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], b = [4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6], z = [1, 1.96, 2.56, 3.0625, 4, 5.0625, 1, 7.5625, 9, 12.25, 15.21, 14.0625], autocontour = False, contours = dict( start = 1, end = 14, size = 1 ), line = dict( width = 2, smoothing = 0 ), colorbar = dict( len = 0.4, y = 0.25 ) ) trace2 = go.Carpet( a = [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], b = [4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6], x = [2, 3, 4, 5, 2.2, 3.1, 4.1, 5.1, 1.5, 2.5, 3.5, 4.5], y = [1, 1.4, 1.6, 1.75, 2, 2.5, 2.7, 2.75, 3, 3.5, 3.7, 3.75], aaxis = dict( tickprefix = 'a = ', smoothing = 0, minorgridcount = 9, type = 'linear' ), baxis = dict( tickprefix = 'b = ', smoothing = 0, minorgridcount = 9, type = 'linear' ) ) data = [trace1, trace2] layout = go.Layout( margin = dict( t = 40, r = 30, b = 30, l = 30 ), yaxis = dict( range = [0.388,4.361] ), xaxis = dict( range = [0.667,5.932] ) ) fig = go.Figure(data = data, layout = layout) py.iplot(fig, filename = "contourcarpet/add-contours") # ### Add Multiple Traces # In[1]: import plotly.graph_objs as go import plotly.plotly as py import urllib, json url = "https://raw.githubusercontent.com/bcdunbar/datasets/master/airfoil_data.json" response = urllib.urlopen(url) data = json.loads(response.read()) trace1 = go.Carpet( a = data[0]['a'], b = data[0]['b'], x = data[0]['x'], y = data[0]['y'], baxis = dict( startline = False, endline = False, showticklabels = "none", smoothing = 0, showgrid = False ), aaxis = dict( startlinewidth = 2, startline = True, showticklabels = "none", endline = True, showgrid = False, endlinewidth = 2, smoothing = 0 ) ) trace2 = go.Contourcarpet( z = data[1]['z'], autocolorscale = False, zmax = 1, name = "Pressure", colorscale = "Viridis", zmin = -8, colorbar = dict( y = 0, yanchor = "bottom", titleside = "right", len = 0.75, title = "Pressure coefficient, cp" ), contours = dict( start = -1, size = 0.025, end = 1.000, showlines = False ), line = dict( smoothing = 0 ), autocontour = False, zauto = False ) trace3 = go.Contourcarpet( z = data[2]['z'], opacity = 0.300, showlegend = True, name = "Streamlines", autocontour = True, ncontours = 50, contours = dict( coloring = "none" ), line = dict( color = "white", width = 1 ) ) trace4 = go.Contourcarpet( z = data[3]['z'], showlegend = True, name = "Pressure
contours", autocontour = False, line = dict( color = "rgba(0, 0, 0, 0.5)", smoothing = 1 ), contours = dict( size = 0.250, start = -4, coloring = "none", end = 1.000, showlines = True ) ) trace5 = go.Scatter( x = data[4]['x'], y = data[4]['y'], legendgroup = "g1", name = "Surface
pressure", mode = "lines", hoverinfo = "skip", line = dict( color = "rgba(255, 0, 0, 0.5)", width = 1, shape = "spline", smoothing = 1 ), fill = "toself", fillcolor = "rgba(255, 0, 0, 0.2)" ) trace6 = go.Scatter( x = data[5]['x'], y = data[5]['y'], showlegend = False, legendgroup = "g1", mode = "lines", hoverinfo = "skip", line = dict( color = "rgba(255, 0, 0, 0.3)", width = 1 ) ) trace7 = go.Scatter( x = data[6]['x'], y = data[6]['y'], showlegend = False, legendgroup = "g1", name = "cp", text = data[6]['text'], hoverinfo = "text", mode = "lines", line = dict( color = "rgba(255, 0, 0, 0.2)", width = 0 ) ) data = [trace1,trace2,trace3,trace4,trace5,trace6,trace7] layout = go.Layout( yaxis = dict( zeroline = False, range = [-1.800,1.800], showgrid = False ), dragmode = "pan", height = 700, xaxis = dict( zeroline = False, scaleratio = 1, scaleanchor = 'y', range = [-3.800,3.800], showgrid = False ), title = "Flow over a Karman-Trefftz airfoil", hovermode = "closest", margin = dict( r = 60, b = 40, l = 40, t = 80 ), width = 900 ) fig = go.Figure(data=data,layout=layout) py.iplot(fig, filename = "contourcarpet/airfoil") # ### Reference # See https://plotly.com/python/reference/#contourcarpet for more information and chart attribute options! # In[2]: from IPython.display import display, HTML display(HTML('')) display(HTML('')) get_ipython().system(' pip install git+https://github.com/plotly/publisher.git --upgrade') import publisher publisher.publish( 'contourcarpet.ipynb', 'python/carpet-contour/', 'Carpet Contour Plot', 'How to make carpet contour plots in Python with Plotly.', title = 'Carpet Contour Plots | Plotly', has_thumbnail='true', thumbnail='thumbnail/contourcarpet.jpg', language='python', # page_type='example_index', // note this is only if you want the tutorial to appear on the main page: plot.ly/python display_as='scientific', order=27, ipynb= '~notebook_demo/145') # In[ ]: