Matplotlib的源代码位于Github存储库
https://github.com/matplotlib/matplotlib
# 引入Matplotlib
import matplotlib
大多数Matplotlib实用程序位于Pyplot子模块下,通常以plt别名导入:
import numpy as np
# 导入Pyplot
import matplotlib.pyplot as plt
# 在图中从位置(0,0)到位置(6,250)画一条线:
xpoints = np.array([0, 6])
ypoints = np.array([0, 250])
plt.plot(xpoints, ypoints)
plt.show()
plot()函数用于在图表中绘制点(标记)
默认情况下,plot()函数从点到点绘制一条线
该函数采用参数来指定图中的点
参数1是一个包含在x轴上的点的数组
参数2是一个包含在y轴上的点的数组
如果我们需要绘制一条从(1,3)到(8,10)的线,我们必须将两个数组[1,8]和[3,10]传递给plot()函数
# 在图中从位置(1,3)到位置(8,10)画一条线:
xpoints = np.array([1, 8])
ypoints = np.array([3, 10])
plt.plot(xpoints, ypoints)
plt.show()
仅绘制标记,您可以使用快捷字符串符号参数"o",这意味着“环”,具体参考格式化字符串fmt
# 在图中绘制点(1,3)(8,10)
plt.plot(xpoints, ypoints, 'o')
plt.show()
您可以根据需要绘制任意数量的点,只需保证两个轴上的点数相同即可
# 在图中画一条线,从位置(1,3)到(2,8)然后到(6,1)最后到位置(8,10)
xpoints = np.array([1, 2, 6, 8])
ypoints = np.array([3, 8, 1, 10])
plt.plot(xpoints, ypoints)
plt.show()
如果我们不指定x轴上的点,它们将获得默认值0,1,2,3等等,取决于y点的长度
ypoints = np.array([3, 8, 1, 10, 5, 7])
plt.plot(ypoints)
plt.show()
您可以使用关键字参数marker,用指定的标记强调每个点
ypoints = np.array([3, 8, 1, 10, 5, 7])
plt.plot(ypoints, marker='o')
plt.show()
# 用星星标记每个点
plt.plot(ypoints, marker='*')
plt.show()
您可以选择以下任何标记
Marker | Description | Marker | Description | Marker | Description | Marker | Description | Marker | Description | Marker | Description |
---|---|---|---|---|---|---|---|---|---|---|---|
‘o’ | 实心圆 | ‘*’ | 星星 | ‘.’ | 点 | ‘,’ | 像素点 | ‘x’ | 乘号 | ‘X’ | 乘号(填充) |
‘+’ | 加号 | ‘P’ | 加号(填充) | ‘s’ | 正方形 | ‘D’ | 菱形 | ‘d’ | 瘦菱形 | ‘p’ | 五边形 |
‘H’ | 六边形(尖朝左) | ‘h’ | 六边形(尖朝上) | ‘v’ | 下三角 | ‘^’ | 上三角 | ‘<’ | 左三角 | ‘>’ | 右三角 |
‘1’ | 下三叉 | ‘2’ | 上三叉 | ‘3’ | 左三叉 | ‘4’ | 右三叉 | ‘|’ | 竖线 | ‘_’ | 横线 |
您可以使用关键字参数markersize或ms来设置标记的大小
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, marker='o', ms=20)
plt.show()
Color Syntax | Description | Color Syntax | Description | Color Syntax | Description | Color Syntax | Description |
---|---|---|---|---|---|---|---|
‘r’ | Red(红色) | ‘g’ | Green(绿色) | ‘b’ | Blue(蓝色) | ‘c’ | Cyan(蓝绿色/青色) |
‘m’ | Magenta(紫红色) | ‘y’ | Yellow(黄色) | ‘k’ | Black(黑色) | ‘w’ | White(白色) |
ypoints = np.array([3, 8, 1, 10])
# 使用关键字参数,markeredgecolor或mec来设置标记边缘的颜色
plt.plot(ypoints, marker='o', ms=20, mec='r')
plt.show()
ypoints = np.array([3, 8, 1, 10])
# 关键字参数 markerfacecolor或mfc来设置标记边缘内的颜色
plt.plot(ypoints, marker='o', ms=20, mfc='r')
plt.show()
ypoints = np.array([3, 8, 1, 10])
# 设置标记整体的颜色
plt.plot(ypoints, marker='o', ms=20, mec='r', mfc='r')
plt.show()
ypoints = np.array([3, 8, 1, 10])
# 您还可以使用十六进制颜色值
plt.plot(ypoints, marker='o', ms=20, mec='#4CAF5C', mfc='#4CAF5C')
plt.show()
ypoints = np.array([3, 8, 1, 10])
# 140种支持的颜色名称中的任何一种
plt.plot(ypoints, marker='o', ms=20, mec='hotpink', mfc='hotpink')
plt.show()
您还可以使用快捷字符串符号参数来指定标记
此参数也称为fmt,使用以下语法编写
marker|line|color
线条参数line参考下面
ypoints = np.array([3, 8, 1, 10])
# o代表实心圆 :代表点虚线 r代表红色
plt.plot(ypoints, 'o:r')
plt.show()
Type | Line Syntax | Description |
---|---|---|
‘solid’ (默认) | ‘-’ | 实线 |
‘dotted’ | ‘:’ | 点虚线 |
‘dashed’ | ‘–’ | 破折线 |
‘dashdot’ | ‘-.’ | 点划线 |
‘None’ | ‘’ 或 ’ ’ | 不画线 |
您可以使用关键字参数 linestyle 或 ls 来更改绘制线的样式
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, linestyle='dotted')
plt.show()
plt.plot(ypoints, ls='dashed')
plt.show()
线条的样式可以用更短的语法编写
linestyle可以写成ls
dotted可以写成:
dashed可以写成–
plt.plot(ypoints, ls=':')
plt.show()
使用关键字参数color或c来设置线条的颜色
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, color='b')
plt.show()
# 您还可以使用十六进制颜色值
plt.plot(ypoints, c='#4CAF50')
plt.show()
# 140种支持的颜色名称中的任何一种
plt.plot(ypoints, c='hotpink')
plt.show()
可以使用关键字参数 linewidth或lw 来更改线条的宽度
该值是一个浮点数,以磅为单位
ypoints = np.array([3, 8, 1, 10])
plt.plot(ypoints, linewidth='20.5')
plt.show()
通过简单地添加更多plt.plot()函数来绘制任意数量的线
y1 = np.array([3, 8, 1, 10])
y2 = np.array([6, 2, 7, 11])
plt.plot(y1)
plt.plot(y2)
plt.show()
还可以通过在同一plt.plot()函数中为每条线添加x轴和y轴的点来绘制多条线
(在上面的例子中,我们只指定了y轴上的点,这意味着x轴上的点得到了默认值(0,1,2,3))
x和y值成对出现
x1 = np.array([0, 1, 2, 3])
y1 = np.array([3, 8, 1, 10])
x2 = np.array([0, 1, 2, 3])
y2 = np.array([6, 2, 7, 11])
plt.plot(x1, y1, x2, y2)
plt.show()
使用PyPlot
# 解决Matplotlib 中文显示问题
matplotlib.rcParams['font.sans-serif'] = ['KaiTi']
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
plt.plot(x, y)
# 设置标题
plt.title("运动手表数据")
# 设置标签
plt.xlabel("平均脉搏")
plt.ylabel("卡路里消耗量")
plt.show()
使用xlabel()、ylabel() 和 title() 中的fontdict参数来设置标题和标签的字体属性
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
font1 = {'family': 'KaiTi', 'color': 'blue', 'size': 20}
font2 = {'family': 'KaiTi', 'color': 'darkred', 'size': 15}
plt.plot(x, y)
plt.title("运动手表数据", fontdict=font1)
plt.xlabel("平均脉搏", fontdict=font2)
plt.ylabel("卡路里消耗量", fontdict=font2)
plt.show()
使用title()中的loc参数来社长标题的位置
合法值是:“left”、“right"和"center”,默认值为"center"
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
plt.plot(x, y)
plt.title("运动手表数据", loc='left')
plt.xlabel("平均脉搏")
plt.ylabel("卡路里消耗量")
plt.show()
使用PyPlot,使用grid()函数将网格线添加到绘图中
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
font1 = {'family': 'KaiTi', 'color': 'blue', 'size': 20}
font2 = {'family': 'KaiTi', 'color': 'darkred', 'size': 15}
plt.plot(x, y)
plt.title("运动手表数据", fontdict=font1)
plt.xlabel("平均脉搏", fontdict=font2)
plt.ylabel("卡路里消耗量", fontdict=font2)
# 添加网格线
plt.grid()
plt.show()
使用grid()函数中的axis(轴)参数来指定要显示的网格线
合法值为:“x”、“y"和"both”,默认值为"both"
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
font1 = {'family': 'KaiTi', 'color': 'blue', 'size': 20}
font2 = {'family': 'KaiTi', 'color': 'darkred', 'size': 15}
plt.plot(x, y)
plt.title("运动手表数据", fontdict=font1)
plt.xlabel("平均脉搏", fontdict=font2)
plt.ylabel("卡路里消耗量", fontdict=font2)
# 只显示垂直x轴的网格线
plt.grid(axis='x')
plt.show()
可以设置网格的线条属性,如下所示:grid(color = ‘color’,linestyle = ‘linestyle’,linewidth = number)
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
font1 = {'family': 'KaiTi', 'color': 'blue', 'size': 20}
font2 = {'family': 'KaiTi', 'color': 'darkred', 'size': 15}
plt.plot(x, y)
plt.title("运动手表数据", fontdict=font1)
plt.xlabel("平均脉搏", fontdict=font2)
plt.ylabel("卡路里消耗量", fontdict=font2)
# 设置网格线条颜色为绿色,虚线,线宽为1.5
plt.grid(color='green', linestyle='--', linewidth=1.5)
plt.show()
我们可以使用 PyPlot 中的 subplot()方法来绘制多个子图
subplot()函数采用三个参数来描述图形的布局
布局按行和列组织,由第一个和第二个参数表示,第三个参数表示当前绘图的索引
如果我们想要一个1行2列的图形(这意味着两个图将并排显示而不是垂直显示)
# plot1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x, y)
# plot2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x, y)
plt.show()
使用title()函数为每个图添加标题
# plot1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x, y)
plt.title("SALES")
# plot2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x, y)
plt.title("INCOME")
plt.show()
可以使用suptitle()函数为整个图形添加标题
# plot1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x, y)
plt.title("SALES")
# plot2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x, y)
plt.title("INCOME")
plt.suptitle("MY SHOP")
plt.show()
借助PyPlot,可以使用scatter()函数绘制散点图
它需要两个长度相同的数组,一个用于x轴的值,另一个用于y轴上的值
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
plt.scatter(x, y)
plt.show()
使用color或c参数为每个散点图设置自己的颜色
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
plt.scatter(x, y, color='hotpink')
x = np.array([2, 2, 8, 1, 15, 8, 12, 9, 7, 3, 11, 4, 7, 14, 12])
y = np.array([100, 105, 84, 105, 90, 99, 90, 95, 94, 100, 79, 112, 91, 80, 85])
plt.scatter(x, y, color='#88C999')
plt.show()
可以通过使用颜色数组作为c参数的值来为每个点设置特定的颜色
此处不能使用color参数,只能使用c参数
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
colors = [
'red', 'blue', 'green', 'grey', 'yellow', 'pink', 'black', 'orange',
'purple', 'beige', 'cyan', 'brown', 'pink'
]
plt.scatter(x, y, c=colors)
plt.show()
Matplotlib模块有许多可用的颜色图
颜色图就像一个颜色列表,其中每种颜色都有一个范围从0到100的值
下面是一个颜色条的例子:
设置颜色条需要使用 cmap 参数,默认值为 ‘viridis’,之后颜色值设置为 0 到 100 的数组。
可以使用带有颜色图值的关键字参数cmap指定颜色图,在本例中为"viridis",它是Matplotlib中可用的内置颜色图之一
此外,必须创建一个包含值(从0到100)的数组,散点图中的每个点都有一个值
# 通过plt.colorbar()语句在绘图中包含颜色图
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, c=colors, cmap='viridis')
plt.colorbar()
plt.show()
可以选择的内置颜色图
颜色名称 | 保留关键字 | 颜色名称 | 保留关键字 | 颜色名称 | 保留关键字 | 颜色名称 | 保留关键字 |
---|---|---|---|---|---|---|---|
Accent | Accent_r | Blues | Blues_r | BrBG | BrBG_r | BuGn | BuGn_r |
BuPu | BuPu_r | CMRmap | CMRmap_r | Dark2 | Dark2_r | GnBu | GnBu_r |
Greens | Greens_r | Greys | Greys_r | OrRd | OrRd_ | Oranges | Oranges_r |
PRGn | PRGn_r | Paired | Paired_r | Pastel1 | Pastel1_r | Pastel2 | Pastel2_r |
PiYG | PiYG_r | PuBu | PuBu_r | PuBuGn | PuBuGn_r | PuOr | PuOr_r |
PuRd | PuRd_r | Purples | Purples_r | RdBu | RdBu_r | RdGy | RdGy_r |
RdPu | RdPu_r | RdYlBu | RdYlBu_r | RdYlGn | RdYlGn_r | Reds | Reds_r |
Set1 | Set1_r | Set2 | Set2_r | Set3 | Set3_r | Spectral | Spectral_r |
Wistia | Wistia_r | YlGn | YlGn_r | YlGnBu | YlGnBu_r | YlOrBr | YlOrBr_r |
YlOrRd | YlOrRd_r | afmhot | afmhot_r | autumn | autumn_r | binary | binary_r |
bone | bone_r | brg | brg_r | bwr | bwr_r | cividis | |
cool | cool_r | coolwarm | coolwarm_r | copper | copper_r | cubehelix | cubehelix_r |
flag | flag_r | gist_earth | gist_earth_r | gist_gray | gist_gray_r | gist_heat | gist_heat_r |
gist_ncar | gist_ncar_r | gist_rainbow | gist_rainbow_r | gist_stern | gist_stern_r | gist_yarg | gist_yarg_r |
gnuplot | gnuplot_r | gnuplot2 | gnuplot2_r | gray | gray_r | hot | hot_r |
hsv | hsv_r | inferno | inferno_r | jet | jet_r | magma | magma_r |
nipy_spectral | nipy_spectral_r | ocean | ocean_r | pink | pink_r | plasma | plasma_r |
prism | prism_r | rainbow | rainbow_r | seismic | seismic_r | spring | spring_r |
summer | summer_r | tab10 | tab10_r | tab20 | tab20_r | tab20b | tab20b_r |
tab20c | tab20c_rv | terrain | terrain_r | twilight | twilight_r | twilight_shifted | twilight_shifted_r |
viridis | viridis_r | winter | winter_r |
使用s参数更改点的大小
就像颜色一样,确保尺寸大小数组的长度与x和y轴的长度相同
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
sizes = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
plt.scatter(x, y, s=sizes)
plt.show()
可以使用alpha参数调整点的透明度
就像颜色一样,确保透明度大小数组的长度与x和y轴的数组长度相同
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
sizes = np.array([20, 50, 100, 200, 500, 1000, 60, 95, 10, 300, 600, 800, 70])
plt.scatter(x, y, s=sizes, alpha=0.5)
plt.show()
在点上组合具有不同大小的颜色图
x = np.random.randint(100, size=(100))
y = np.random.randint(100, size=(100))
colors = np.random.randint(100, size=(100))
sizes = 10 * np.random.randint(100, size=(100))
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='nipy_spectral')
plt.colorbar()
plt.show()
在PyPlot中,使用bar()函数绘制柱状图
bar()函数采用描述条形布局的参数
类别及其值由第一个和第二个参数表示为数组
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.bar(x, y)
plt.show()
如果柱状水平显示而不是垂直显示,请使用barh()函数
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.barh(x, y)
plt.show()
bar()和barh()函数都可以使用关键字参数color来设置颜色
color的值可以是
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.bar(x, y, color="r")
plt.show()
bar()使用关键字参数width来设置宽度
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.bar(x, y, width=0.1)
plt.show()
barh()使用关键字参数height来设置条形的高度
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])
plt.barh(x, y, height=0.1)
plt.show()
在Matplotlib中,我们使用hist()函数来创建直方图
hist()函数将使用一个数字数组来创建直方图,该数组作为参数发送到函数中
为简单起见,我们使用NumPy随机生成一个包含250个值的数组,其中值将集中在170左右,标准差为10
x = np.random.normal(170, 10, 250)
print(x)
[172.83224577 166.59215173 164.42783259 158.15990985 171.4167824
184.57482644 156.98938481 168.53672758 173.32800612 168.85310644
177.31120323 178.733422 146.59130748 162.92016988 182.5350214
173.31881646 170.59270029 172.44498539 172.0818382 168.0687817
186.92884321 167.89541457 169.50370351 179.91946522 185.40477377
173.71603205 169.22000391 172.94558761 174.68060389 170.18619384
175.95926736 165.27644425 173.38878524 149.32676714 167.42052427
155.73761424 178.19474856 150.67061647 160.16266619 174.64562254
160.19218237 171.61117197 172.79584472 169.68835154 174.83206491
182.26657115 162.938066 186.12354658 159.63770203 173.51259846
162.19645476 170.9687639 156.56690294 177.61289237 157.06048109
190.37404146 168.13746134 187.81537228 186.86255287 157.72470211
159.77839483 163.02225651 179.26660458 159.17354417 164.55553479
171.94656274 167.96423807 159.94908256 167.4269312 169.73016624
184.88986031 161.84504375 157.4431235 172.7313438 158.84340485
184.46983136 174.22695449 155.22521322 161.73079279 181.40647818
155.6597359 157.66961199 186.10916515 166.51010671 140.57502902
175.34308478 166.10613828 179.98179552 160.47496638 182.97245337
152.32166421 141.88685382 149.55276237 165.49862886 163.77125887
159.20026397 181.29018303 180.23719619 166.02913142 153.32825493
171.9421416 191.87109134 176.49893928 175.70191298 169.72779281
153.52708587 181.8700642 165.56766196 158.99149939 158.14523649
165.1961903 176.52367929 178.21595603 152.78410602 164.60530652
161.37801084 164.97723028 161.98405132 173.63083952 159.05235693
167.02157156 173.76409227 168.80263496 171.49566963 179.81651124
175.78504952 172.92131064 173.75211622 162.16084894 174.48409587
160.79427524 185.98295779 169.34401713 153.65064701 159.78857688
163.57108265 166.64868653 173.96476028 180.410143 157.76743793
174.99384223 180.68159861 177.97373969 184.6569523 176.63813497
164.05601525 175.33049318 161.21527901 152.95256863 166.82936466
174.41298249 180.55369213 167.26562753 157.78684301 176.28166843
176.44871051 154.47716717 164.25345375 171.94701146 173.75149999
159.61101834 166.73570752 179.27713404 166.11670139 171.24827797
173.24021301 165.40305297 197.58474554 171.29050346 161.37131937
162.10937024 157.51452579 149.32869376 149.97761306 164.96286299
163.84986317 185.77587332 178.24924509 160.71988489 179.9909164
169.08774133 182.20092214 162.85630435 176.78953518 170.10830753
163.3481756 183.17645321 170.17549032 165.71707045 169.26393508
155.05835842 161.01172235 174.90867655 198.72369427 167.8667804
160.88220225 165.34701674 165.15181926 171.77587939 181.29050326
177.80530234 185.75607082 155.53005021 176.22913679 161.10302988
173.47924139 180.1322566 181.42245649 166.84376524 160.04378756
179.87304132 161.68832374 155.44256153 179.70846811 164.13880512
163.07319623 163.52101022 162.07436664 174.55311474 167.5814016
194.56357985 171.11114409 158.35486494 151.16473348 163.9213877
175.94531648 157.2860032 157.60653633 162.42891378 180.72294803
172.55980031 171.11474768 157.20553376 163.55258661 159.04889303
179.43443798 158.2798769 172.15969538 158.77737181 154.96652073
156.81755951 177.65290796 182.19718867 176.57004163 161.30487197
149.386414 178.86074604 161.55593962 164.02007432 170.9858288 ]
plt.hist(x)
plt.show()
在PyPlot中,可以使用pie()函数绘制饼图
y = np.array([35, 25, 25, 15])
plt.pie(y)
plt.show()
使用label参数为饼图添加标签
label参数必须是一个数组,每个楔形都有一个标签
y = np.array([35, 25, 25, 15])
mylabels = ['Apples', 'Bananas', 'Cherries', 'Oranges']
plt.pie(y, labels=mylabels)
plt.show()
如前所述,默认起始角度位于x轴,但您可以通过指定startangle参数来更改起始角度
startangle参数定义为以度为单位的角度,默认角度为0
y = np.array([35, 25, 25, 15])
mylabels = ['Apples', 'Bananas', 'Cherries', 'Oranges']
plt.pie(y, labels=mylabels, startangle=90)
plt.show()
也许你想让其中一个楔形脱颖而出?explode参数允许您这样做
如果指定了explode参数,而不是None,则必须是一个数组,每个楔形都有一个值
每个值表示每个楔形显示的距离中心多远
y = np.array([35, 25, 25, 15])
mylabels = ['Apples', 'Bananas', 'Cherries', 'Oranges']
myexplode = [0.2, 0, 0, 0]
plt.pie(y, labels=mylabels, explode=myexplode)
plt.show()
通过将shadow参数设置为True为饼图添加阴影
y = np.array([35, 25, 25, 15])
mylabels = ['Apples', 'Bananas', 'Cherries', 'Oranges']
myexplode = [0.2, 0, 0, 0]
plt.pie(y, labels=mylabels, explode=myexplode, shadow=True)
plt.show()
使用colors参数设置每个楔形的颜色
如果指定了颜色参数,则必须是一个数组,每个楔形都有一个值
colors参数值可以为
y = np.array([35, 25, 25, 15])
mylabels = ['Apples', 'Bananas', 'Cherries', 'Oranges']
myexplode = [0.2, 0, 0, 0]
mycolor = ['black', 'hotpink', 'b', '#4CAF5C']
plt.pie(y, labels=mylabels, explode=myexplode, shadow=True, colors=mycolor)
plt.show()
要为每个楔形添加解释列表,请使用legend()函数
y = np.array([35, 25, 25, 15])
mylabels = ['Apples', 'Bananas', 'Cherries', 'Oranges']
myexplode = [0.2, 0, 0, 0]
plt.pie(y, labels=mylabels, explode=myexplode, shadow=True)
plt.legend()
plt.show()
要向图例添加标题,可通过关键字参数title='title’设置并将标题参数传递给图例函数
y = np.array([35, 25, 25, 15])
mylabels = ['Apples', 'Bananas', 'Cherries', 'Oranges']
myexplode = [0.2, 0, 0, 0]
plt.pie(y, labels=mylabels, explode=myexplode, shadow=True)
plt.legend(title='Four Fruits')
plt.show()
更详细教程可关注
https://www.runoob.com/matplotlib/matplotlib-tutorial.html
记录者:ZL-Qin