-
Notifications
You must be signed in to change notification settings - Fork 0
/
stackedarea.py
114 lines (94 loc) · 3.26 KB
/
stackedarea.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#Stacked area plots -
#These work in the same way as area graphs do, but they use multiple data series that start each point
#from the point left by the previous data series. The entire graph represents the total of all data plotted.
#They are useful, overall, for comparing multiple variables changing over an interval.
#It can be said that they represent the evolution of values of similar groups over a period of time on the same graphic.
import pandas as pd
import numpy as np
import matplotlib.cm as cmp
import matplotlib.colors as cl
import matplotlib.pyplot as plt
import matplotlib.patches as mp
import plotly.graph_objects as go
import plotly.express as px
from scipy import stats
#Matplotlib representation of a stacked area plot
area_labels = ['Breaststroke', 'Backstroke', 'Butterfly', 'Medley']
fig, ax = plt.subplots(figsize=(10, 7))
# patches for the legend
breast_patch = mp.Patch( color ='dodgerblue',
label ='Breaststroke')
back_patch = mp.Patch(color ='firebrick',
label ='Backstroke')
butter_patch = mp.Patch(color ='springgreen',
label ='Butterfly')
medley_patch = mp.Patch(color ='rebeccapurple',
label ='Medley')
plt.title("MEN'S WEIGHT VARIATION \nFROM 1950 W.R.T DIFFRENT STROKES", fontsize=20,
color= 'rebeccapurple',
pad=20,
loc="center")
plt.xlabel('Games')
plt.ylabel('Weight (in kg)')
ax.stackplot(x, y1, y2, y3, y4, colors=['dodgerblue', 'firebrick', 'springgreen', 'rebeccapurple'])
box = ax.get_position()
ax.set_position([box.x0, box.y0 + box.height * 0.1,
box.width, box.height * 0.9])
plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.12), ncol=5, fancybox=True, shadow=True, handles = [breast_patch, back_patch, butter_patch, medley_patch])
plt.show()
#Plotly express representation of the above chart
fig = px.area(strokes, x="Year", y="Weight",
color="Event", title="MEN'S WEIGHT VARIATION \nFROM 1950 W.R.T DIFFRENT STROKES"
)
fig.update_layout(
font_color="rebeccapurple",
title_font_family="Times New Roman",
title_font_color="navy",
legend_title_font_color="rebeccapurple"
)
fig.update_xaxes(title_font_family="Arial")
fig.show()
# Plotly - graph objects
fig = go.Figure()
fig.add_trace(go.Scatter(
x=strokes['Year'], y=y1,
hoverinfo='x+y',
mode='lines',
line=dict(width=0.5, color='rgb(131, 90, 241)'),
stackgroup='one',
name="Breaststroke"
))
fig.add_trace(go.Scatter(
x=strokes['Year'], y=y2,
hoverinfo='x+y',
mode='lines',
line=dict(width=0.5, color='rgb(111, 231, 219)'),
stackgroup='one',
name="Backstroke",
))
fig.add_trace(go.Scatter(
x=strokes['Year'], y=y3,
hoverinfo='x+y',
mode='lines',
line=dict(width=0.5, color='rgb(184, 247, 212)'),
stackgroup='one',
name="Butterfly",
))
fig.add_trace(go.Scatter(
x=strokes['Year'], y=y4,
hoverinfo='x+y',
mode='lines',
line=dict(width=0.5, color='rgb(144, 200, 272)'),
stackgroup='one',
name="Medley"
))
fig.update_layout( title="MEN'S WEIGHT VARIATION \nFROM 1950 W.R.T DIFFRENT STROKES",
xaxis_title="Games",
yaxis_title="Weight (kg)",
legend_title="Strokes",
font=dict(
# family="Courier New, monospace",
size=18,
color="RebeccaPurple"
))
fig.show()