import matplotlib.pyplot as plt
labels='Frogs','Hogs','Dogs','Logs'#对应扇块的标签
sizes=[15,30,45,10]#对应扇块的尺寸
explode=(0,0.1,0,0)#对应扇块突出的比例
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)#autopct为显示百分比的格式,shadow为是否带阴影,startangle为起始角度
plt.axis('equal')#让饼图变圆
plt.show()
直方图
使用pygal
from random import randint
classDie():def__init__(self,num_sides=6):
self.num_sides=num_sides
defroll(self):return randint(1,self.num_sides)
import pygal
from die import Die
die=Die()
results=[]for roll_num inrange(100):
result=die.roll()
results.append(result)
frequencies=[]for value inrange(1,die.num_sides+1):
frequency=results.count(value)
frequencies.append(frequency)print(frequencies)
hist=pygal.Bar()
hist.title="Results of rooling one D6 100 times."
hist.x_labels=[str(x)for x inrange(1,7)]#x轴标签
hist._x_title="Result"
hist._y_title="Frequency of Result"
hist.add('D6',frequencies)#增加要显示的数据
hist.render_to_file('die_visual.svg')
使用pyplot
import numpy as np
import matplotlib.pyplot as plt
#下面随机生成数据
np.random.seed(0)
mu,sigma=100,20
a=np.random.normal(mu,sigma,size=100)
plt.hist(a,20,normed=1,histtype='stepfilled',facecolor='b',alpha=0.75)#20表示生成的图形有20个直方(数据取值区间被20等分)#normed=1表示将个数(y轴值)归一化
plt.title('Histogram')
plt.show()
散点图
例1
#散点图import matplotlib.pyplot as plt
#plt.scatter(2,4,s=200) #绘制单个点
x_values=list(range(1,11))
y_values=[x**2for x in x_values]
plt.scatter(x_values,y_values,s=100)
plt.title("Square Numbers",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)
plt.tick_params(axis='both',which='major',labelsize=14)
plt.show()
例2
import matplotlib.pyplot as plt
x_values=list(range(1,1001))
y_values=[x**2for x in x_values]#plt.scatter(x_values,y_values,s=10)
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,edgecolors='none',s=10)
plt.axis([0,1100,0,1100000])
plt.show()
例3
import matplotlib.pyplot as plt
x=list(range(0,5001))
y=[value**3for value in x]
plt.scatter(x,y,c=y,cmap=plt.cm.Blues,edgecolors='none',s=2)
plt.title("sj ci fh",fontsize=20)
plt.xlabel("x")
plt.ylabel("x^3")
plt.axis([0,5000,0,5000*5000*5000])
plt.show()
盒图
import matplotlib.pyplot as plt
x=list(range(0,5001))
plt.boxplot(x,labels="x")
plt.title("盒图",fontproperties="SimHei")