这里将介绍普通的饼状图和带图例的饼状图,还有用不同形状显示的散点图,最后会介绍不太常用的极坐标图。
饼状图的绘制
1.利用matplotlib库文件,画出如下的饼图,没有突出显示和图标。
代码显示:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Youyuan']
labels='A班','B班','C班','D班'
sizes=[10,30,45,15]
plt.pie(sizes,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)
plt.title('班级名称')
plt.legend()#添加图例
plt.axis('equal')
plt.show()
2.利用matplotlib库文件,画出如下的饼图(explod=0.5),这里会将重要的区域划分凸显出来。
代码显示:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Youyuan']
labels='A班','B班','C班','D班'
sizes=[10,30,45,15]
explode=(0,0,0.5,0)
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)
plt.title('班级名称')
plt.legend()#添加图例
plt.axis('equal')
plt.show()
3.绘制带有长条形图例的直方图。
代码显示:
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['Youyuan']
matplotlib.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(10,8), dpi=80)#创建一个画布,也可以不使用
label = 'A-班','B-班','C-班','D-班'
sizes = [16,30,44,10]
explode = [0,0.1,0,0]
color = ["blue","orange","green","red"]
patches, l_text, p_text = plt.pie(sizes,labels=label,colors=color,explode=explode,autopct='%1.1f%%',shadow=False,startangle=10,pctdistance=0.6)
plt.legend()
plt.legend(loc='lower center',ncol=4,borderaxespad=-2,frameon=True)#设置标签的样式
plt.axis("equal")
plt.show()
基本散点图绘制
1.利用matplotlib库文件,画出如下的散点图,散点为五角星形状。
代码显示:
# 画五角星形状的散点图
import numpy as np
import matplotlib.pyplot as plt
N = 1000 # 散点的个数
plt.axis([-5,3,-2,3])
x=np.random.normal(0,1,1000)
y=np.random.normal(0,1,1000) # 随机产生x和y轴的坐标
area = np.pi * (6 * np.random.rand(N))**2 # 点的半径范围:0~15
plt.scatter(x, y, s=area, alpha=0.5, marker="*")
plt.show()
2.利用matplotlib库文件,绘制出圆点状散点图,如下所示。
代码显示:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Youyuan'] #正常显示中文
plt.rcParams['axes.unicode_minus']=False #用来正常坐标轴的数字的负号
N = 90 # 散点的个数
plt.axis([-5,3,-2,3])
x=np.random.normal(0,1,1000)
y=np.random.normal(0,1,1000) # 随机产生x和y轴的坐标
area = np.pi * (5 * np.random.rand(N))**2 # 点的半径范围
plt.scatter(x, y, s=area, alpha=0.8, marker="o")#形状和清晰度的设计
plt.xlabel('横轴:X',color='green',fontsize=15)
plt.ylabel('纵轴:Y',color='red',fontsize=15)#坐标轴的标签设计
plt.title('散点图',color='blue',fontsize=15)
plt.show()
3.利用matplotlib库文件,绘制出直线散点图,具体如下所示。
代码显示:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.rcParams['font.family']='YouYuan'
matplotlib.rcParams['font.size']=20
a=np.arange(1,200,0.5)
plt.plot(a,2*a+6,'b .')
plt.xlabel('x axis caption',color='black')
plt.ylabel('y axis caption',color='black')
plt.title('Matplotlib demo',color='black')
plt.axis([1,10,5,25])
plt.show()
几种极坐标图的绘制
1.利用matplotlib库文件,画出如下的空极坐标图。
代码显示:
#绘制空的极坐标图
import numpy as np
import matplotlib. pyplot as plt
N=0#空的极坐标图
plt.figure(figsize=(10,5), dpi=80)#创建一个画布,也可以不使用
theta=np.linspace(0.0,2*np.pi ,N, endpoint=False)
radii=10*np. random. rand(N)
width=np.pi/4* np.random.rand(N)
ax=plt. subplot(111, projection='polar')
bars=ax.bar(theta, radii , width=width, bottom=0.0)
for r,bar in zip(radii,bars):
bar.set_facecolor(plt.cm.viridis(r/10.))
bar.set_alpha(0.5)
plt. show()
这里只用将N的值设置为0,最后显示的就是空的极坐标图。
2.利用matplotlib库文件,画出如下的普通极坐标图。
代码显示:
#极坐标图的绘制
import numpy as np
import matplotlib. pyplot as plt
N=20
plt.figure(figsize=(10,5), dpi=80)#创建一个画布,也可以不使用
theta=np.linspace(0.0,2*np.pi ,N, endpoint=False)
radii=10*np. random. rand(N)
width=np.pi/4* np.random.rand(N)
ax=plt. subplot(111, projection='polar')
bars=ax.bar(theta, radii , width=width, bottom=0.0)
for r,bar in zip(radii,bars):
bar.set_facecolor(plt.cm.viridis(r/10.))
bar.set_alpha(0.5)
plt. show()
3.利用matplotlib库文件,画出如下的彩色散点填充的极坐标图。
代码显示:
import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(10,10), dpi=80)#创建一个画布,也可以不使用
N = 100
r = 2*np.random.rand(N)
theta = 2*np.pi*np.random.rand(N) #2*pi*x
area = 200*r**2
colors = theta
fig = plt.figure()
ax = fig.add_subplot(111, projection='polar') #画布分割
c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75)#散点填充