AI智能
改变未来

python-Matplotlib模块1-初级


导入模块

plt.plot()

import numpy as npimport matplotlib.pyplot as plt# 处理中文正常显示plt.rcParams[\'font.sans-serif\'] = [\'Microsoft YaHei\']

1.折线图

先准备一个画布 . 参数 figsize 规定画布的大小。 如下是8×4英寸。1英寸=72像素dpi

plt.figure(figsize=(8,4),facecolor=\'cyan\')

plot 折线图,里面参数是对应坐标

plt.plot( [-1,0,1,2,3] ,[4,3,7,2,4]   )

显示图

plt.show()

如果想将一个坐标的x,y全提取出来,可以用解压

# 先创建一个坐标值lab=[(-5,4),(-4,5),(-3,4)]# 解压x,y=zip(*lab)print(x)print(y)


plot常用参数
plot(x,y,
‘go–’, // 颜色 点位 线条风格 r*:
linewidth = 2 ,//线条宽度
markersize = 12 ,//点的大小
color = ‘g’ ,// 颜色可以用单词,可以用 16进制颜色表示
marker = ‘o’ ,// 点位的形状 ,查语法 character description
linestyle = ‘’ ,// 线条风格,实线,虚线,点线 ‘-’, ‘–’, ‘-.’, ‘:’, ‘’
)

# \'gh-.\':g绿色,h点的形状为六边形,-.点线plt.plot(x,y,\'gh-.\',markersize=12)


一个完整的练习:画两条折线图

# 创建画布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()# 定义x,y轴名称plt.xlabel(\'x 轴\')plt.ylabel(\'y 轴\')# 给表加标题plt.title(\'xxx公司yyy信息图\')plt.show()

2.柱状图和条形图

坐标,还用上面的

x1,y1

x2,y2


plt.bar()柱状图

plt.bar(x1,y1,label=\'柱状图-1\')# 为了都显示, x2集体+1# 颜色可以用qq截图时,按住ctrl会显示的16进制颜色plt.bar(np.array(x2)+1,y2,label=\'柱状图-2\',color=\'#cb3966\')plt.legend()plt.show()


plt.barh()条形图

plt.barh(x1,y1,label=\'柱状图-1\')plt.barh(np.array(x2)+1,y2,label=\'柱状图-2\',color=\'#cb3966\')plt.legend()plt.show()

3.直方图

plt.hist()
参数:rwidth每个柱子的宽度
align位置
histtype柱子类型

先定义一份年龄数据

ages = np.random.randint(18,81,200)

分区

np.arange(1,9)*10

做直方图

plt.hist(ages,bins,histtype=\'bar\',rwidth=0.8,align=\'mid\',label=\'年龄分布直方图\')plt.legend()plt.xlabel(\'年龄区间\')plt.ylabel(\'人数\')plt.title(\'200人年龄分布\')plt.show()


文本类型

plt.text(0.6, 0.7, \"天王盖地虎\", size=20, rotation=45.,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, \"小鸡炖蘑菇\", size=20, rotation=-25.,ha=\"right\", va=\"top\",bbox=dict(boxstyle=\"square\",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))plt.show()

4.饼状图

plt.pie()

创建数组

time_array = [8,2,10,4]activity = \'睡/吃/工作/玩\'.split(\'/\')

做图

plt.pie(time_array,labels=activitystartangle=0 , # 起始角度colors = [\'#b5b5b5\',\'green\',\'red\',\'orange\'],# 颜色列表shadow=True, # 阴影explode=(0,0,0,0.2) ,  # 把哪一块拉出基于半径的距离比例autopct=\'%.2f%%\', # 占整体的百分比labeldistance= 1.1 ,# label距离圆心的距离比例 .默认 1.1pctdistance=0.6 , # 百分比距离圆心的距离比例,默认 0.6radius=1.5 , # 基于默认图的倍数)plt.show()

5.散点图

plt.scatter()

创建两个数组

x3 = np.arange(1,9)y3 = np.random.randint(2,9,8)

做图

plt.scatter(x3,y3,s=40, #点的大小c=\'red\',# 颜色marker=\'*\',#形状)plt.show()

6.堆叠图

plt.stackplot()

创建数组

days = range(1,6)eat =   [2, 3,3 ,1 ,4]sleep = [10,5,11,8 ,7]study = [8 ,7,2 ,1 ,12]play =  [4 ,9,8 ,14,1]

做图`

plt.stackplot(days,eat,sleep,study,play,labels=list(\'吃睡学玩\'),colors =[\'red\',\'orange\',\'yellow\',\'green\'])plt.legend()plt.xlabel(\'天数\')plt.ylabel(\'时间\')plt.show()
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » python-Matplotlib模块1-初级