matplotlib的基本应用

matplotlib的基本应用

matplotlib的基础绘图

matplotlib将数据进行可视化,更直观的呈现,使数据更加客观、更具说服力。其是最流行的底层绘图库,主要做数据可视化图表
绘图基本方法如下:

# 测试matplotlib
from matplotlib import pyplot as ppt

# 调整图片大小
fig = ppt.figure(figsize=(20, 8), dpi=80)  # 设置图片的大小,在图片模糊的时候传入dpi参#数,让图片更加清晰
x = range(2, 26, 2)  # x轴
y = [15, 13, 14, 15, 19, 17, 10, 18, 20, 15, 19, 19]  # y轴
# 绘图
ppt.plot(x, y,label='图例')  # 传入x,y,通过polt绘出折线图,
ppt.legend(loc=数字或短语)  # 显示图例并且位置可变
ppt.grid(alpha=0.4)  # 画网格,alpha透明度
# 保存图片
ppt.savefig('./t1.png')  # 可保存为svg矢量图格式,这样放大不会有锯齿
# 设置x轴的刻度
ppt.xticks(x)  # 设置x轴的刻度,传一个参数时只显示数字,传递两个参数,数字与字符串一一对应,显示该字符串
# 设置y轴的刻度
ppt.yticks(y)

ppt.show()  # 在程序执行中展示图片

改变图例位置用法
在这里插入图片描述
自定义绘制图形风格
在这里插入图片描述
matplotlib默认不支持中文字符
fc-list 查看支持的字体
fc-list :lang=zh 查看支持的中文(冒号前面有空格)
修改matplotlib的默认字体:
①通过matplotlib.rc可以修改
②通过matplotlib下的font manager可以修改(一定可以)
import matplotlib
from matplotlib import font_manager
显示中文

# 修改默认字体
# ①
# font = {'family': 'MicroSoft YaHei',
#        'weight': 'bold',
#        'size': '4'}
# matplotlib.rc('font', **font)这四行操作与下一行操作效果一样
matplotlib.rc('font', family='MicroSoft YaHei', weight='bold')
# ②
# my_font = font_manager.FontProperties(fname=)  # fname='字体所在的位置路径'
# my_font中要显示中文的地方添加fontproperties=my_font,图例使用prop=my_font来接受

设置中文显示

ppt.xlabel('时间')  # x轴
ppt.ylabel('温度/^C')  # y轴
ppt.title('十点到十二点的气温变化情况')  # 图片标题

常用统计图的对比
在这里插入图片描述

绘制散点图

使用ppt.scatter()绘制散点图,这也是与绘制折线图的唯一区别

绘制条形图

bar()方法绘制纵向条形图,barh()绘制横向条形图

a = ['战狼', '速度与激情', '功夫瑜伽']
b = [78, 98, 56]

f = ppt.figure(figsize=(20, 8), dpi=300)
matplotlib.rc('font', family='MicroSoft YaHei', weight='bold')
# font = {'family': 'MicroSoft YaHei',
#         'weight': 'bold',
#         'size': '10'}
# matplotlib.rc('font', **font)
ppt.yticks(range(len(a)), a, rotation=45)  # rotation调整字体角度
ppt.barh(range(len(a)), b, height=0.3)  # width调整柱状图宽度,height调整高度,bar()方法绘制纵向条形图,barh()绘制横向条形图
ppt.grid(alpha=0.3)
ppt.show()

绘制多次条形图

a = ['猩球崛起3:终局之战', '敦刻尔克', '蜘蛛侠:英雄归来', '战狼2']
b1 = [15746, 312, 4497, 319]
b2 = [12357, 156, 2045, 168]
b3 = [2358, 399, 2358, 362]

n = 0.2  # 重点步骤
x1 = list(range(len(a)))  # 先后移动,防止重叠操作
x2 = [i + n for i in x1]
x3 = [i + n * 2 for i in x1]

ppt.xticks(x2, a)
ppt.bar(range(len(a)), b1, width=n, label='9月14日')
ppt.bar(x2, b2, width=n, label='9月15日')
ppt.bar(x3, b3, width=n, label='9月16日')

绘制直方图

组数:当处理数据在100个以内时,常分为5-12组
组距:指每个小组的两个端点的距离
组数=极差/组距
a = [12, 23, 32, 98, 23, 42, 65, 54]

计算组数

x = 2 # 组距 设置能够整除
num_bins = int((max(a) - min(a)) // x) # 分为多少组

ppt.hist(a, num_bins, normed=1)  # 绘制图形 一般来说绘制没有经过处理数据的直方图
ppt.hist(a,[min(a)+i*bin_width for i in range(num_bins)])  # 可以传入一个列表,长度为组数,值为分组依据,当组距不均匀时可以使用
ppt.hist(a,num_bins,normed=1)  # normed:bool是否绘制频率分布直方图,默认为频数直方图
ppt.xticks(range(min(a), max(a) + x, x), rotation=45)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值