AI智能
改变未来

01.Matplotlib-新手入门

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 plt​plt.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()

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 01.Matplotlib-新手入门