0


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

文章目录

🐚作者简介: 苏凉(在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')

🌹2.设置组距

d =7
num =max(x)-min(x)
numbins = num//7

🌺3.绘制直方图

绘制直方图的方法为plt.hist(x, bins=None)
bins:直方图的长条形数目,可选项,默认为10

plt.hist(x,numbins)

🌻4.设置x轴的刻度

plt.xticks(range(min(x),max(x)+d,d))

🌷5.设置xy以及标题说明

plt.xlabel('范围',fontproperties = my_font)
plt.ylabel('个数',fontproperties = my_font)
plt.title('直方图',fontproperties = my_font)

🥀6.添加网格(可选)

plt.grid(color ='r',alpha =0.2)

☘7.保存及展示


plt.savefig('./直方图.png')
plt.show()

🌱8.源码及结果

from matplotlib import pyplot as plt
from matplotlib import font_manager

# 设置字体
my_font = font_manager.FontProperties(fname='./msyh.ttc')

x =[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]# 设置组距
d =7
num =max(x)-min(x)
numbins = num//7# 绘制直方图
plt.hist(x,numbins)

plt.xticks(range(min(x),max(x)+d,d))

plt.xlabel('范围',fontproperties = my_font)
plt.ylabel('个数',fontproperties = my_font)
plt.title('直方图',fontproperties = my_font)# 添加表格
plt.grid(color ='r',alpha =0.2)

plt.savefig('./直方图.png')
plt.show()

结果展示:
在这里插入图片描述

🍒结语

好啦,今天的内容就是绘制这三个图啦,matplotlib可以有效的让数据可视化,在数据分析领域有着极大的作用。希望看到这篇文章的小伙伴们能有所收获。最后,如果你觉得这篇文章可以的话,三连支持一下吧,我是苏凉,咱们下期再见!!

在这里插入图片描述


本文转载自: https://blog.csdn.net/weixin_46277553/article/details/123709720
版权归原作者 苏凉.py 所有, 如有侵权,请联系我们删除。

“python数据分析基础002 -使用mtplotlib绘图(散点图,条形图,直方图)”的评论:

还没有评论