MATPLOTLIB使用

1:什么是matplotlib

(1)matplotlib是最流行的python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。

(2)能将数据进行可视化,更直观的呈现。

(3)使数据更加客观,更具说服力。

2:如何分辨应该使用什么样的图:

  • 折线图:以折线的的上升或者下降来表示数量增减变化的统计图,特点是:能够显示数据的变化趋势,反映事物的变化情况。(变化)
  • 直方图:由一系列高度不等的纵向条纹或者线段表示数据分布情况,一般用横轴表示数据范围,纵轴表示分布情况。特点是:绘制连续性的数据,展示一组或者多组数据的分布状况。(统计)
  • 条形图:排列在工作表的列或行中的数据可以绘制到条形图中。特点是:绘制连离线的数据,能够一眼看看出哥哥数据的大小,比较数据之间的差别。(统计)
  • 散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两个变量之间是否存在某种关联或者总结坐标点的分布模式。特点是:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)

3:使用matplotlib画x-y折线图:axis轴:指的是x或者y这种坐标轴。

from matplotlib import pyplot as plt

x = range(2,26,2) # 数值在x轴上的位置是一个可迭代对象。
y = [15,13,14.5,17,20,25,26,26,24,22,18,15] # 数值在y轴上的位置,是一个可迭代对象。
# x轴与y轴上的数据一起组成了所有要绘制出的坐标。
# 分别是(2,15),(4,13)。。。。

# 设置图片的大小
plt.figure(figsize=(20, 8), dpi=80)  # figsize图片的长宽,dpi是设置图片清晰度


# 绘图
plt.plot(x, y)  # 传入x,y通过plot绘制出折线图,y后边color='orange',linestyle='',linewidth=5,alpha=0.5设置线条的特性。

# 设置x轴的刻度疏密程度
_xtick_labels = [i/2 for i in range(4, 49)]
plt.xticks(_xtick_labels)  # [0.5, 1, 1.5, 2]
# plt.xticks(_xtick_labels[::3])  # [0.5, 1, 1.5, 2]

# 设置y轴的刻度显示情况
plt.yticks(range(min(y), max(y) + 1))


# print(_xtick_labels)
# print(_xtick_labels[::3])
# (_xtick_labels[::-1])

# 绘图结束在当前页面进行展示
# plt.show()  # 在执行程序的时候展示图形

# 保存
plt.savefig('./t1.png')

4:解决x坐标轴中文的问题

#windows以及linux设置字体
# font = {'family': 'MicroSoft YaHei',
#           'weight': 'bold',
#           'size': 'larger'}
#
# matplotlib.rc('font', **font)

my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc')


plt.xticks(list(x)[::3], _xtick_labels[::3], rotation=270, fontproperties=my_font)  # 第一个参数是,第二个参数是指定格式,第三个参数是hiding旋转角度


#mac字体文件存在于/System/Library/Fonts文件夹。

5:添加图形说明信息

# 添加描述信息
plt.xlabel('时间', fontproperties=my_font)
plt.ylabel('温度 单位:℃', fontproperties=my_font)
plt.title('10点到12点每分钟的气温变化曲线图', fontproperties=my_font)

6:绘制网格线:

plt.grid(alpha=0.4)  # alpha设置线的透明度

7:绘制散点图:

与折线图唯一区别是:

#折线图
plt.plot(x, y, label='3月份')
#散点图
plt.scatter(x, y, label='3月份')

8:绘制条形图:(条形图的应用场景:数量以及频率)

from matplotlib import pyplot as plt
from matplotlib import font_manager

x = ['反贪风暴4', '雷霆沙赞!', '调音师', '风中有朵雨做的云', '老师·好', '小飞象', '海市蜃楼', '比悲伤更悲伤的故事',
     '波西米亚狂想曲','地久天长','绿皮书']

y = [56.01, 26.94, 17.53, 16.49, 15.45, 12.96, 11.8, 11.61, 11.28, 11.12, 10.49]


my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc')

#绘制竖着的条形图
# plt.bar(range(len(x)), y, width=0.3)  # width:设置柱的宽度
#
# plt.xticks(range(len(x)), x, rotation=45, fontproperties=my_font)
#
# plt.xlabel('电影名称', fontproperties=my_font)
# plt.ylabel('票房/亿', fontproperties=my_font)
# plt.title('19年01-04月电影票房', fontproperties=my_font)
#
# plt.show()


#绘制横着的条形图
plt.barh(range(len(x)), y, height=0.3) # 设置柱的高度

plt.yticks(range(len(x)), x, rotation=45, fontproperties=my_font)


plt.show()



#当绘制多个图形的条形图时,第二个图x=第一个图的x*柱宽,第三个图的x=第一个图的x+柱宽*2

9:绘制直方图

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值