FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
matplotlib/examples/api/donut_demo.py at master · thomasgit/matplotlib · GitHub
thomasgit
matplotlib
Repository navigation
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
matplotlib
/
examples
/
api
/
donut_demo.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
54 lines (44 loc) · 1.5 KB
Breadcrumbs
matplotlib
/
examples
/
api
/
donut_demo.py
Copy path
File metadata and controls
54 lines (44 loc) · 1.5 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
import
numpy
as
np
import
matplotlib
.
path
as
mpath
import
matplotlib
.
patches
as
mpatches
import
matplotlib
.
pyplot
as
plt
def
wise
(
v
):
if
v
==
1
:
return
"CCW"
else
:
return
"CW"
def
make_circle
(
r
):
t
=
np
.
arange
(
0
,
np
.
pi
*
2.0
,
0.01
)
t
=
t
.
reshape
((
len
(
t
),
1
))
x
=
r
*
np
.
cos
(
t
)
y
=
r
*
np
.
sin
(
t
)
return
np
.
hstack
((
x
,
y
))
Path
=
mpath
.
Path
fig
=
plt
.
figure
()
ax
=
fig
.
add_subplot
(
111
)
inside_vertices
=
make_circle
(
0.5
)
outside_vertices
=
make_circle
(
1.0
)
codes
=
np
.
ones
(
len
(
inside_vertices
),
dtype
=
mpath
.
Path
.
code_type
)
*
mpath
.
Path
.
LINETO
codes
[
0
]
=
mpath
.
Path
.
MOVETO
for
i
, (
inside
,
outside
)
in
enumerate
(((
1
,
1
), (
1
,
-
1
), (
-
1
,
1
), (
-
1
,
-
1
))):
# Concatenate the inside and outside subpaths together, changing their
# order as needed
vertices
=
np
.
concatenate
((
outside_vertices
[::
outside
],
inside_vertices
[::
inside
]))
# Shift the path
vertices
[:,
0
]
+=
i
*
2.5
# The codes will be all "LINETO" commands, except for "MOVETO"s at the
# beginning of each subpath
all_codes
=
np
.
concatenate
((
codes
,
codes
))
# Create the Path object
path
=
mpath
.
Path
(
vertices
,
all_codes
)
# Add plot it
patch
=
mpatches
.
PathPatch
(
path
,
facecolor
=
'#885500'
,
edgecolor
=
'black'
)
ax
.
add_patch
(
patch
)
ax
.
annotate
(
"Outside %s,
\n
Inside %s"
%
(
wise
(
outside
),
wise
(
inside
)),
(
i
*
2.5
,
-
1.5
),
va
=
"top"
,
ha
=
"center"
)
ax
.
set_xlim
(
-
2
,
10
)
ax
.
set_ylim
(
-
3
,
2
)
ax
.
set_title
(
'Mmm, donuts!'
)
ax
.
set_aspect
(
1.0
)
plt
.
show
()
Back
|
FazBrowse Home
|
New Git URL