import numpy as npimport matplotlib .pyplot as plt# 处理中文正常显示plt.rcParams[\'font.sans-serif\'] = [\'Microsoft YaHei\']# 处理负号显示
折线图
plt.plot()
# 准备画布 参数 figsize 规定画布的大小。如下是8x4英寸。1英寸=72像素dpiplt.figure(figsize=(8,4),facecolor=\'cyan\')# plot 折线图plt.plot([-1,0,1,2,3],[4,3,7,2,4])# 只显示图plt.show()
# 准备画布 参数 figsize 规定画布的大小。如下是8x4英寸。1英寸=72像素dpiplt.figure(figsize=(8,4),facecolor=\'cyan\')# plot 折线图plt.plot([1,2,3],[5,7,5],\'black\')plt.plot([4,5,6],[5,7,5],\'black\')plt.plot([2,3,4,5],[3,1,1,3],\'red\')# 只显示图plt.show()
# 画一个 颜色相同的笑脸# 创建坐标值lab=[(-5,4),(-4,5),(-3,4)]# 可以用推导式取出所有 x 和 yx=[each[0] for each in lab]y=[each[1] for each in lab]x[-5, -4, -3]y[4, 5, 4]list(zip(x,y))[(-5, 4), (-4, 5), (-3, 4)]# 直接解压得到所有x,ylist(zip(*zip(x,y)))[(-5, -4, -3), (4, 5, 4)]x2,y2=zip(*lab)x2(-5, -4, -3)y2(4, 5, 4)plt.plot(x2,y2,color=\'pink\',linestyle=\'-.\')[<matplotlib.lines.Line2D at 0x2c7192d8550>]
plot常用参数
plot(x,y,
‘go–’, // 颜色 点位 线条风格
linewidth = 2 ,//线条宽度
markersize = 12 ,//点的大小
color = ‘g’ ,// 颜色可以用单词,可以用 16进制颜色表示
marker = ‘o’ ,// 点位的形状 ,查语法 character description
linestyle = ‘’ ,// 线条风格,实线,虚线,点线 ‘-’, ‘–’, ‘-.’, ‘:’, ‘’
)
# 画2个线条plt.figure(figsize=(8,4))# 两组坐标points=[(-1,5),(1,6),(3,3),(5,4)]points2= [(-1,7),(1,8),(3,5),(5,6)]# 解压缩x1,y1=zip(*points)x2,y2=zip(*points2)# 参数 label 标注,必须结合方法 plt.legend()显示plt.plot(x1,y1,label=\'价格\')plt.plot(x2,y2,label=\'销量\')plt.legend()plt.xlabel(\'时 间\')plt.ylabel(\'y 轴\')plt.title(\'xxx公司xxx信息图\')plt.show()
柱状图、条形图
plt.bar()
plt.bar(x1,y1)plt.show()
plt.bar(x1,y1,label=\'柱状图-1\',color=\'#5AB9C1\')# 为了都显示,x2集体加1plt.bar(np.array(x2)+1,y2,label=\'柱状图-2\',color=\'#98D2D6\')plt.legend()plt.show()
plt.barh()条形图
plt.barh(x1,y1,label=\'柱状图-1\',color=\'#5AB9C1\')# 为了都显示,x2集体加1plt.barh(np.array(x2)+1,y2,label=\'柱状图-2\',color=\'#98D2D6\')plt.legend()plt.show()
直方图
plt.hist()
# 准备年龄数据ages=np.random.randint(18,81,200)# 准备一个分箱# bins=np.arange(10,81,10)bins=np.arange(1,9)*10# rwidth=\'每个柱子的宽度\'plt.hist(ages,bins,histtype=\'bar\',rwidth=0.8,label=\'年龄分布直方图\')plt.legend()plt.title(\'200人年龄分布\')plt.xlabel(\'年 龄 区 间\')plt.ylabel(\'人 数\')plt.show()
import matplotlib.pyplot as pltplt.text(0.6, 0.7, \"eggs\", size=50, rotation=30.,ha=\"center\", va=\"center\",bbox=dict(boxstyle=\"round\",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))plt.text(0.55, 0.6, \"spam\", size=50, rotation=-25.,ha=\"right\", va=\"top\",bbox=dict(boxstyle=\"square\",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))plt.show()
饼状图
plt.pie()
time_array=[8,2,10,4]activity=\'睡/吃/工作/玩\'.split(\'/\')plt.pie(time_array,labels=activity,startangle=0, #起始角度colors=[\'pink\',\'blue\',\'r\',\'orange\'],shadow=True,explode=(0,0,0,0.2), #把哪一块拉出基于半径的距离比例autopct=\'%0.2f%%\', #占整体的百分比labeldistance=1.1, #label距离圆心的距离比例,默认1.1pctdistance=0.6, #百分比距离圆心的距离比例,默认0.6radius=1.5, #基于默认图的倍数)plt.show()
散点图
plt.scatter()
x3=np.arange(1,9)y3=np.random.randint(2,9,8)plt.scatter(x3,y3,s=40 , # 控制点的大小c = \'red\', # 颜色marker=\'*\' , #形状)# np.linspace(start ,end ,n = 50)在start -end中均匀的返回n个数字plt.plot(x3,np.linspace(2,8,8))plt.show()