FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
matplotlib/examples/misc/logos2.py at v3.7.x · matplotlib/matplotlib · GitHub
matplotlib
matplotlib
Repository navigation
Code
Issues
1.1k
(1.1k)
Pull requests
434
(434)
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
matplotlib
/
examples
/
misc
/
logos2.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
157 lines (128 loc) · 5.11 KB
Breadcrumbs
matplotlib
/
examples
/
misc
/
logos2.py
Copy path
File metadata and controls
157 lines (128 loc) · 5.11 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
"""
===============
Matplotlib logo
===============
This example generates the current matplotlib logo.
"""
import
numpy
as
np
import
matplotlib
.
pyplot
as
plt
import
matplotlib
.
cm
as
cm
import
matplotlib
.
font_manager
from
matplotlib
.
patches
import
Rectangle
,
PathPatch
from
matplotlib
.
text
import
TextPath
import
matplotlib
.
transforms
as
mtrans
MPL_BLUE
=
'#11557c'
def
get_font_properties
():
# The original font is Calibri, if that is not installed, we fall back
# to Carlito, which is metrically equivalent.
if
'Calibri'
in
matplotlib
.
font_manager
.
findfont
(
'Calibri:bold'
):
return
matplotlib
.
font_manager
.
FontProperties
(
family
=
'Calibri'
,
weight
=
'bold'
)
if
'Carlito'
in
matplotlib
.
font_manager
.
findfont
(
'Carlito:bold'
):
print
(
'Original font not found. Falling back to Carlito. '
'The logo text will not be in the correct font.'
)
return
matplotlib
.
font_manager
.
FontProperties
(
family
=
'Carlito'
,
weight
=
'bold'
)
print
(
'Original font not found. '
'The logo text will not be in the correct font.'
)
return
None
def
create_icon_axes
(
fig
,
ax_position
,
lw_bars
,
lw_grid
,
lw_border
,
rgrid
):
"""
Create a polar axes containing the matplotlib radar plot.
Parameters
----------
fig : matplotlib.figure.Figure
The figure to draw into.
ax_position : (float, float, float, float)
The position of the created Axes in figure coordinates as
(x, y, width, height).
lw_bars : float
The linewidth of the bars.
lw_grid : float
The linewidth of the grid.
lw_border : float
The linewidth of the Axes border.
rgrid : array-like
Positions of the radial grid.
Returns
-------
ax : matplotlib.axes.Axes
The created Axes.
"""
with
plt
.
rc_context
({
'axes.edgecolor'
:
MPL_BLUE
,
'axes.linewidth'
:
lw_border
}):
ax
=
fig
.
add_axes
(
ax_position
,
projection
=
'polar'
)
ax
.
set_axisbelow
(
True
)
N
=
7
arc
=
2.
*
np
.
pi
theta
=
np
.
arange
(
0.0
,
arc
,
arc
/
N
)
radii
=
np
.
array
([
2
,
6
,
8
,
7
,
4
,
5
,
8
])
width
=
np
.
pi
/
4
*
np
.
array
([
0.4
,
0.4
,
0.6
,
0.8
,
0.2
,
0.5
,
0.3
])
bars
=
ax
.
bar
(
theta
,
radii
,
width
=
width
,
bottom
=
0.0
,
align
=
'edge'
,
edgecolor
=
'0.3'
,
lw
=
lw_bars
)
for
r
,
bar
in
zip
(
radii
,
bars
):
color
=
*
cm
.
jet
(
r
/
10.
)[:
3
],
0.6
# color from jet with alpha=0.6
bar
.
set_facecolor
(
color
)
ax
.
tick_params
(
labelbottom
=
False
,
labeltop
=
False
,
labelleft
=
False
,
labelright
=
False
)
ax
.
grid
(
lw
=
lw_grid
,
color
=
'0.9'
)
ax
.
set_rmax
(
9
)
ax
.
set_yticks
(
rgrid
)
# the actual visible background - extends a bit beyond the axis
ax
.
add_patch
(
Rectangle
((
0
,
0
),
arc
,
9.58
,
facecolor
=
'white'
,
zorder
=
0
,
clip_on
=
False
,
in_layout
=
False
))
return
ax
def
create_text_axes
(
fig
,
height_px
):
"""Create an Axes in *fig* that contains 'matplotlib' as Text."""
ax
=
fig
.
add_axes
((
0
,
0
,
1
,
1
))
ax
.
set_aspect
(
"equal"
)
ax
.
set_axis_off
()
path
=
TextPath
((
0
,
0
),
"matplotlib"
,
size
=
height_px
*
0.8
,
prop
=
get_font_properties
())
angle
=
4.25
# degrees
trans
=
mtrans
.
Affine2D
().
skew_deg
(
angle
,
0
)
patch
=
PathPatch
(
path
,
transform
=
trans
+
ax
.
transData
,
color
=
MPL_BLUE
,
lw
=
0
)
ax
.
add_patch
(
patch
)
ax
.
autoscale
()
def
make_logo
(
height_px
,
lw_bars
,
lw_grid
,
lw_border
,
rgrid
,
with_text
=
False
):
"""
Create a full figure with the Matplotlib logo.
Parameters
----------
height_px : int
Height of the figure in pixel.
lw_bars : float
The linewidth of the bar border.
lw_grid : float
The linewidth of the grid.
lw_border : float
The linewidth of icon border.
rgrid : sequence of float
The radial grid positions.
with_text : bool
Whether to draw only the icon or to include 'matplotlib' as text.
"""
dpi
=
100
height
=
height_px
/
dpi
figsize
=
(
5
*
height
,
height
)
if
with_text
else
(
height
,
height
)
fig
=
plt
.
figure
(
figsize
=
figsize
,
dpi
=
dpi
)
fig
.
patch
.
set_alpha
(
0
)
if
with_text
:
create_text_axes
(
fig
,
height_px
)
ax_pos
=
(
0.535
,
0.12
,
.17
,
0.75
)
if
with_text
else
(
0.03
,
0.03
,
.94
,
.94
)
ax
=
create_icon_axes
(
fig
,
ax_pos
,
lw_bars
,
lw_grid
,
lw_border
,
rgrid
)
return
fig
,
ax
##############################################################################
# A large logo:
make_logo
(
height_px
=
110
,
lw_bars
=
0.7
,
lw_grid
=
0.5
,
lw_border
=
1
,
rgrid
=
[
1
,
3
,
5
,
7
])
##############################################################################
# A small 32px logo:
make_logo
(
height_px
=
32
,
lw_bars
=
0.3
,
lw_grid
=
0.3
,
lw_border
=
0.3
,
rgrid
=
[
5
])
##############################################################################
# A large logo including text, as used on the matplotlib website.
make_logo
(
height_px
=
110
,
lw_bars
=
0.7
,
lw_grid
=
0.5
,
lw_border
=
1
,
rgrid
=
[
1
,
3
,
5
,
7
],
with_text
=
True
)
plt
.
show
()
Back
|
FazBrowse Home
|
New Git URL