python数据分析基础002 -使用matplotlib绘图(散点图,条形图,直方图)

95 阅读6分钟

🐚作者简介: 苏凉(在python路上)

🐳博客主页: 苏凉.py的博客

👑名言警句: 海阔凭鱼跃,天高任鸟飞。

📰要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!

👉关注✨点赞👍收藏📂

🍇 前言

========================================================================

在这里插入图片描述

在上一篇matplotlib的基础绘图中我们学习了以下内容:

1.绘制折线图(plt.plot)

2.设置图片的大小和分辨率(plt.figure)

3.实现了图片的保存(plt.savefig)

4.设置xy轴上的刻度和字符串(xticks,yticks)

5.解决了刻度系数和密集的问题(xticks,yticks)

6.设置了xy轴以及标题的描述(xlable,ylable,title)

7.设置了中文显示(font_manager,fontproperties)

8.设置折线图线条的样式(color,linestyle,linewidth,alpha)

9.添加水印(fig.text())

详情可以点击上面链接回顾呀!!

在本篇文章中我们将利用以上知识点来学习如何利用matplotlib来绘制散点图,条形图,直方图

🍈(一)散点图的绘制

==============================================================================

实例:

题目:绘制5月份和10月份的温度变化图(散点图)温度数据如下:

5月[[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,24,25,26

] 10月[[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,9,10,8,6

]

🥂1.设置字体


若想在图片中显示中文,那么我们需要在前面设置字体

my_font = font_manager.FontProperties(fname='./msyh.ttc')

🍷2.设置图片大小


plt.figure(figsize=(20,8),dpi=80)

🍸3.设置x轴和y轴的数值


这里一个月为31天,为了不重复这里10月份的需要设置为41-72。赋值时减去40即可。

x_5 = range(1,32)

x_10 = range (41,72)

y_5 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,24,25,26]

y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,9,10,8,6]

🍹4.使用scatter方法绘制散点图


在上篇中我们提到的折线图用的是plot方法,而我们要绘制散点图时则需要用到scatter的方法。

plt.scatter(x_5,y_5,label = '5月份')

plt.scatter(x_10,y_10,label = '10月份')

🍺5.添加图例


plt.legend(loc= "upper left", prop = my_font)

🍻6.设置xy轴以及标题的描述信息


plt.xlabel('时间',fontproperties = my_font)

plt.ylabel('温度',fontproperties = my_font)

plt.title('5月和10月气温变化散点图',fontproperties = my_font)

🥂7.设置xy的刻度


x_totle =list(x_5) + list(x_10)

x_ticks_label = ['5月{}日'.format(i) for i in x_5]

x_ticks_label += ['10月{}日'.format(i-40) for i in x_10]

rotation设置描述信息的倾斜角度

plt.xticks(x_totle[::1],x_ticks_label[::1],fontproperties = my_font,rotation = 45)

🥛8.添加水印


plt.text(

x = 25.5,y= 15,

s = '苏凉.py' ,fontproperties = my_font,

color = 'b' ,fontsize = 40,

ha='center', va='center', alpha=0.09

)

☕9.保存和展示


plt.savefig('./散点图.png')

plt.show()

🥤10.源码及结果展示


from matplotlib import pyplot as plt

from matplotlib import font_manager

设置字体

my_font = font_manager.FontProperties(fname='./msyh.ttc')

设置图片大小

plt.figure(figsize=(20,8),dpi=80)

设置xy轴的数值

x_5 = range(1,32)

x_10 = range (41,72)

y_5 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,24,25,26]

y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,9,10,8,6]

使用scatter方法绘制散点图

plt.scatter(x_5,y_5,label = '5月份')

plt.scatter(x_10,y_10,label = '10月份')

添加图例

plt.legend(loc= "upper left", prop = my_font)

设置xy轴以及标题的描述信息

plt.xlabel('时间',fontproperties = my_font)

plt.ylabel('温度',fontproperties = my_font)

plt.title('5月和10月气温变化散点图',fontproperties = my_font)

设置xy的刻度

x_totle =list(x_5) + list(x_10)

x_ticks_label = ['5月{}日'.format(i) for i in x_5]

x_ticks_label += ['10月{}日'.format(i-40) for i in x_10]

rotation设置描述信息的倾斜角度

plt.xticks(x_totle[::1],x_ticks_label[::1],fontproperties = my_font,rotation = 45)

添加水印

plt.text(

x = 25.5,y= 15,

s = '苏凉.py' ,fontproperties = my_font,

color = 'b' ,fontsize = 40,

ha='center', va='center', alpha=0.09

)

保存图片

plt.savefig('./散点图.png')

#展示图片

plt.show()

运行结果:

在这里插入图片描述

🍉(二)条形图的绘制

==============================================================================

绘制条形图需要用到bar方法我们以上一个温度散点图为例修改一下scatter方法即可

plt.bar(x_5,y_5,label = '5月份')

plt.bar(x_10,y_10,label = '10月份')

运行结果:

在这里插入图片描述

若我们需要将图形横过来则需要用到barh方法

plt.barh(x_5,y_5,label = '5月份')

plt.barh(x_10,y_10,label = '10月份')

设置y轴描述信息

plt.yticks(x_totle[::1],x_ticks_label[::1],fontproperties = my_font)

运行结果:

在这里插入图片描述

🍋(三)直方图的绘制

==============================================================================

下面以求一个列表中的数字的出现次数为例:该列表为 [10,15,9,20,15,45,65,25,15,78,65,32,32,45,65,10,9,45,85,74,62,54,62,74,65,45,10,102,105,102,105,107,45,65,95]

🌸1.设置字体


my_font = font_manager.FontProperties(fname= './msyh.ttc')

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

了解详情:docs.qq.com/doc/DSnl3ZG…