开发者学堂课程【Python 常用数据科学库:Pie 图(饼状图)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/546/detail/7508
Pie 图(饼状图)
对于 Pie 图的绘制,首先需要导入需要的工具。在 Pie 图当中想画某一个时间段男女比例的不同,用圆进行统计,也就叫做 Pie 图,数据直接使用。有了比例之后,就可以按照比例在大圆当中画图。首先就是指定 fixed size。指定图的大小,接下来就是做 Pie 图,做法相似。需要传入一些参数,也就是当前画图的指标,现在在做 Pie 图左边一部分,右边一部分,Explode 就指的是分离程度。用2种不同的颜色,指定2个参数。代码如下:
m = 51212.
f = 40742.
n_perc = m/(m+f)
f_perc = f/(m+f)
colors =["navy,"lightcoral']labels = ['Nale". "Fenale"]
plt.figure(ffgsize=(12,12))
plt.pie([m_perc.f_perc],labels=labels,autopct=1.1f,explode=[0,0.05],colors = colors)
执行代码之后,得到一个 Pie 图。
上面表示,男生下面表示女生。但其实还需要进行美化。所以对 fixed size 进行缩小。字体也会随着缩小。可以用如下代码对字体进行增大,调节变量,首先前提是需要有这个变量,设置完大小之后,再对其颜色进行设置。总代码如下:
m = 51212.
f = 40742.
n_perc = m/(m+f)
f_perc = f/(m+f)
colors =["navy,"lightcoral']labels = ['Nale". "Fenale"]
plt.figure(ffgsize=(12,12))
paches.texts.autotexts=plt.pie([m_perc.f_perc],labels=labels,autopct=1.1f,explode=[0,0.05],colors = colors)
for text in texts+autotexts:
text.set_fontsize(20)
for text in autotexts:
text.set_color(‘white’)
上代码之后。发现图形当中的字体变成了白色,这样 pie 图更好看,还可以的标题。Explored 表示的就是两间距,也就是缝隙。
设置子图布局如下:
原来构造子图大小都必须是一致的,现在想构造不一致的子图大小。也就是一个特别长,一个特别宽,其他都是标准格式。在函数中需要指定标准格,这是第一个参数,第二个参数就是这个3行3列的位置。可以对每一个子图进行自定义。 0,2指的就是第一行最后一个位置,希望它是竖的,那么他就要占用多行,就需要用到 rowspan,如果是多列就是 colspan。代码如下:
ax1=plt.subplot2grid((3,3),(0,0))
ax2=plt.subplot2grid((3,3),(1,0))
ax3 = plt.subplot2grid((3,3),(0,2),rowspan=3)
ax4 =plt.subplot2grid((3,3),(2,0),colspan =2)
ax5 =plt.subplot2grid (3,3),(0,1),rowspan=2)
通过以上的代码。子图布局如下:
可以通过基本坐标值指定当前子图的布局。
在一个图中再进行嵌套,一个图也能够实现。方法如下:首先导入需要的库,直接复制之前的数据,做两个图,首先需要指定在大图当中嵌套一个小图,那么嵌套的时候需要告诉小图的布局,所以现在需要把子图的位置进行指定。指定 AX2 在当前图中增加一个坐标系,传入指标。代码如下:
import nunpy as np
x = np. linspace(0, 10,1000)
y2=np.sin(x**2)
y1=x**2
fig.ax = plt.subplots()
left,botton,width,height=[0.22,0.45,0.3,0.35]
ax2 = fig.add_axes([left,botton,width,height])
axl.plot(x.yl)
ax2 plot (x.y2)
执行以上代码之后,发现只画出了内部的图,没有画出外部的图。对代码进行修改之后,总代码如下:
import numpy as np
x = np. linspace(0, 10,1000)
y2=np.sin(x**2)
y1=x**2
fig.ax 1= plt.subplots()
left,botton,width,height=[0.22,0.45,0.3,0.35]
ax2 = fig.add_axes([left,botton,width,height])
axl1.plot(x.y1)
ax2 plot (x.y2)
执行以上代码。图像如下:
当想嵌套一个图时,在最外层图中嵌套图。外层图按照之前的方法画,再加入一个图即可。