#!/usr/bin/env python
# coding: utf-8
# #### New to Plotly?
# Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
#
You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/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__
# #### Legacy Plots
# Looking for the old polar chart docs? See [legacy polar charts](https://plot.ly/python/legacy-polar-chart/)
# #### Basic Polar Chart
# In[2]:
import plotly.plotly as py
import plotly.graph_objs as go
data = [
go.Scatterpolar(
r = [0.5,1,2,2.5,3,4],
theta = [35,70,120,155,205,240],
mode = 'markers',
marker = dict(
color = 'peru'
)
)
]
layout = go.Layout(
showlegend = False
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename = 'polar-basic')
# #### Line Polar Chart
# In[3]:
import plotly.plotly as py
import plotly.graph_objs as go
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/polar_dataset.csv")
data = [
go.Scatterpolar(
r = df['x1'],
theta = df['y'],
mode = 'lines',
name = 'Figure8',
line = dict(
color = 'peru'
)
),
go.Scatterpolar(
r = df['x2'],
theta = df['y'],
mode = 'lines',
name = 'Cardioid',
line = dict(
color = 'darkviolet'
)
),
go.Scatterpolar(
r = df['x3'],
theta = df['y'],
mode = 'lines',
name = 'Hypercardioid',
line = dict(
color = 'deepskyblue'
)
),
go.Scatterpolar(
r = df['x4'],
theta = df['y'],
mode = 'lines',
name = 'orangered',
line = dict(
color = 'orangered'
)
),
go.Scatterpolar(
r = df['x5'],
theta = df['y'],
mode = 'lines',
name = 'Supercardioid',
line = dict(
color = 'green'
)
)
]
layout = go.Layout(
title = 'Mic Patterns',
font = dict(
family = 'Arial, sans-serif;',
size = 12,
color = '#000'
),
showlegend = False
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename = 'polar-line')
# #### Area Polar Chart
# In[4]:
import plotly.plotly as py
import plotly.graph_objs as go
data = [
go.Scatterpolar(
r = [0, 1.5, 1.5, 0, 2.5, 2.5, 0],
theta = [0, 10, 25, 0, 205, 215, 0],
mode = 'lines',
fill = 'toself',
fillcolor = '#709BFF',
line = dict(
color = 'black'
)
),
go.Scatterpolar(
r = [0, 3.5, 3.5, 0],
theta = [0, 55, 75, 0],
mode = 'lines',
fill = 'toself',
fillcolor = '#E4FF87',
line = dict(
color = 'black'
)
),
go.Scatterpolar(
r = [0, 4.5, 4.5, 0, 4.5, 4.5, 0],
theta = [0, 100, 120, 0, 305, 320, 0],
mode = 'lines',
fill = 'toself',
fillcolor = '#FFAA70',
line = dict(
color = 'black'
)
),
go.Scatterpolar(
r = [0, 4, 4, 0],
theta = [0, 165, 195, 0],
mode = 'lines',
fill = 'toself',
fillcolor = '#FFDF70',
line = dict(
color = 'black'
)
),
go.Scatterpolar(
r = [0, 3, 3, 0],
theta = [0, 262.5, 277.5, 0],
mode = 'lines',
fill = 'toself',
fillcolor = '#B6FFB4',
line = dict(
color = 'black'
)
)
]
layout = go.Layout(
polar = dict(
radialaxis = dict(
visible = True,
range = [0,5]
)
),
showlegend = False
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename = 'polar-area')
# #### Categorical Polar Chart
# In[5]:
import plotly.plotly as py
import plotly.graph_objs as go
data = [
go.Scatterpolar(
name = "angular categories",
r = [5, 4, 2, 4, 5],
theta = ["a", "b", "c", "d", "a"],
fill = "toself"
),
go.Scatterpolar(
name = "radial categories",
r = ["a", "b", "c", "d", "b", "f", "a"],
theta = [1, 4, 2, 1.5, 1.5, 6, 5],
thetaunit = "radians",
fill = "toself",
subplot = "polar2"
),
go.Scatterpolar(
name = "angular categories (w/ categoryarray)",
r = [5, 4, 2, 4, 5],
theta = ["a", "b", "c", "d", "a"],
fill = "toself",
subplot = "polar3"
),
go.Scatterpolar(
name = "radial categories (w/ category descending)",
r = ["a", "b", "c", "d", "b", "f", "a", "a"],
theta = [45, 90, 180, 200, 300, 15, 20, 45],
fill = "toself",
subplot = "polar4"
),
go.Scatterpolar(
name = "angular categories (w/ extra category)",
r = [5, 4, 2, 4, 5, 5],
theta = ["b", "c", "d", "e", "a", "b"],
fill = "toself"
)
]
layout = go.Layout(
polar = dict(
domain = dict(
x = [0, 0.46],
y = [0.56, 1]
),
radialaxis = dict(
angle = 45
),
angularaxis = dict(
direction = "clockwise",
period = 6
)
),
polar2 = dict(
domain = dict(
x = [0, 0.46],
y = [0, 0.44]
),
radialaxis = dict(
angle = 180,
tickangle = -180
)
),
polar3 = dict(
domain = dict(
x = [0.54, 1],
y = [0.56, 1]
),
sector = [150, 400],
radialaxis = dict(
angle = -45
),
angularaxis = dict(
categoryarray = ["d", "a", "c", "b"]
)
),
polar4 = dict(
domain = dict(
x = [0.54, 1],
y = [0, 0.44]
),
radialaxis = dict(
categoryorder = "category descending"
),
angularaxis = dict(
thetaunit = "radians",
dtick = 0.3141592653589793
)
)
)
fig = go.Figure(data=data,layout=layout)
py.iplot(fig, filename='polar-category')
# #### Polar Chart Sector
# In[6]:
import plotly.plotly as py
import plotly.graph_objs as go
data = [
go.Scatterpolar(
mode = "lines+markers",
r = [1,2,3,4,5],
theta = [0,90,180,360,0],
line = dict(
color = "#ff66ab"
),
marker = dict(
color = "#8090c7",
symbol = "square",
size = 8
),
subplot = "polar",
),
go.Scatterpolar(
mode = "lines+markers",
r = [1,2,3,4,5],
theta = [0,90,180,360,0],
line = dict(
color = "#ff66ab"
),
marker = dict(
color = "#8090c7",
symbol = "square",
size = 8
),
subplot = "polar2"
)
]
layout = go.Layout(
showlegend = False,
polar = dict(
domain = dict(
x = [0,0.4],
y = [0,1]
),
sector = [150,210],
radialaxis = dict(
tickfont = dict(
size = 8
)
),
angularaxis = dict(
tickfont = dict(
size = 8
)
)
),
polar2 = dict(
domain = dict(
x = [0.6,1],
y = [0,1]
),
radialaxis = dict(
tickfont = dict(
size = 8
)
),
angularaxis = dict(
tickfont = dict(
size = 8
)
)
)
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='polar-sector')
# #### Polar Chart Directions
# In[7]:
import plotly.plotly as py
import plotly.graph_objs as go
data = [
go.Scatterpolar(
mode = "lines+markers",
r = [1,2,3,4,5],
theta = [0,90,180,360,0],
line = dict(
color = "#ff66ab"
),
marker = dict(
color = "#8090c7",
symbol = "square",
size = 8
),
subplot = "polar",
),
go.Scatterpolar(
mode = "lines+markers",
r = [1,2,3,4,5],
theta = [0,90,180,360,0],
line = dict(
color = "#ff66ab"
),
marker = dict(
color = "#8090c7",
symbol = "square",
size = 8
),
subplot = "polar2"
)
]
layout = go.Layout(
showlegend = False,
polar = dict(
domain = dict(
x = [0,0.4],
y = [0,1]
),
radialaxis = dict(
tickfont = dict(
size = 8
)
),
angularaxis = dict(
tickfont = dict(
size = 8
),
rotation = 90,
direction = "counterclockwise"
)
),
polar2 = dict(
domain = dict(
x = [0.6,1],
y = [0,1]
),
radialaxis = dict(
tickfont = dict(
size = 8
)
),
angularaxis = dict(
tickfont = dict(
size = 8
),
rotation = 90,
direction = "clockwise"
),
)
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='polar-directions')
# #### Webgl Polar Chart
# In[17]:
import plotly.plotly as py
import plotly.graph_objs as go
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/hobbs-pearson-trials.csv")
data = [
go.Scatterpolargl(
r = df.trial_1_r,
theta = df.trial_1_theta,
mode = "markers",
name = "Trial 1",
marker = dict(
color = "rgb(27,158,119)",
size = 15,
line = dict(
color = "white"
),
opacity = 0.7
)
),
go.Scatterpolargl(
r = df.trial_2_r,
theta = df.trial_2_theta,
mode = "markers",
name = "Trial 2",
marker = dict(
color = "rgb(217,95,2)",
size = 20,
line = dict(
color = "white"
),
opacity = 0.7
)
),
go.Scatterpolargl(
r = df.trial_3_r,
theta = df.trial_3_theta,
mode = "markers",
name = "Trial 3",
marker = dict(
color = "rgb(117,112,179)",
size = 12,
line = dict(
color = "white"
),
opacity = 0.7
)
),
go.Scatterpolargl(
r = df.trial_4_r,
theta = df.trial_4_theta,
mode = "markers",
name = "Trial 4",
marker = dict(
color = "rgb(231,41,138)",
size = 22,
line = dict(
color = "white"
),
opacity = 0.7
)
),
go.Scatterpolargl(
r = df.trial_5_r,
theta = df.trial_5_theta,
mode = "markers",
name = "Trial 5",
marker = dict(
color = "rgb(102,166,30)",
size = 19,
line = dict(
color = "white"
),
opacity = 0.7
)
),
go.Scatterpolargl(
r = df.trial_6_r,
theta = df.trial_6_theta,
mode = "markers",
name = "Trial 6",
marker = dict(
color = "rgb(230,171,2)",
size = 10,
line = dict(
color = "white"
),
opacity = 0.7
)
)
]
layout = go.Layout(
title = "Hobbs-Pearson Trials",
font = dict(
size = 15
),
showlegend = False,
polar = dict(
bgcolor = "rgb(223, 223, 223)",
angularaxis = dict(
tickwidth = 2,
linewidth = 3,
layer = "below traces"
),
radialaxis = dict(
side = "counterclockwise",
showline = True,
linewidth = 2,
tickwidth = 2,
gridcolor = "white",
gridwidth = 2
)
),
paper_bgcolor = "rgb(223, 223, 223)"
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='polar-webgl')
# #### Polar Chart Subplots
# In[18]:
import plotly.plotly as py
import plotly.graph_objs as go
data = [
go.Scatterpolar(
r = [1, 2, 3],
theta = [50, 100, 200],
marker = dict(symbol = "square")
),
go.Scatterpolar(
r = [1, 2, 3],
theta = [1, 2, 3],
thetaunit = "radians"
),
go.Scatterpolar(
r = ["a", "b", "c", "b"],
theta = ["D", "C", "B", "A"],
subplot = "polar2"
),
go.Scatterpolar(
r = [50, 300, 900],
theta = [0, 90, 180],
subplot = "polar3"
),
go.Scatterpolar(
mode = "lines",
r = [3, 3, 4, 3],
theta = [0, 45, 90, 270],
fill = "toself",
subplot = "polar4"
)
]
layout = go.Layout(
polar = dict(
domain = dict(
x = [0, 0.46],
y = [0.56, 1]
),
radialaxis = dict(
range = [1, 4]
),
angularaxis = dict(
thetaunit = "radians"
)
),
polar2 =dict(
domain = dict(
x = [0, 0.46],
y = [0, 0.42]
)
),
polar3 = dict(
domain = dict(
x = [0.54, 1],
y = [0.56, 1]
),
radialaxis = dict(
type = "log",
tickangle = 45
),
sector = [0, 180]
),
polar4 = dict(
domain = dict(
x = [0.54, 1],
y = [0, 0.44]
),
radialaxis = dict(
visible = False,
range = [0, 6]
)
),
showlegend = False
)
fig = go.Figure(data=data,layout=layout)
py.iplot(fig, filename='polar-subplot')
# #### Reference
# See https://plot.ly/python/reference/#scatterpolar for more information and chart attribute options!
# In[19]:
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(
'polar.ipynb', 'python/polar-chart/', 'Polar Charts',
'How to makepolar charts in Python with Plotly.',
title = 'Polar Charts | Plotly',
has_thumbnail='true', thumbnail='thumbnail/polar.gif',
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=29, ipynb='~notebook_demo/200',
)
# In[ ]: