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

🐚作者简介:苏凉(在python路上)
🐳博客主页:苏凉.py的博客
👑 名言:海阔鱼跃,天高飞鸟。
📰如果觉得博主的文章写的不错,希望大家支持三连! ! !
👉关注✨喜欢👍收藏📂

🍇 前言

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

在上一篇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()

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

🍉(二)条形图的绘制

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

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

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

若我们需要将图形横过来则需要用到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)

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

🍋 (3) 直方图的绘制

下面以求一个列表中的数字的出现次数为例:该列表为 [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()

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

🍒结论

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

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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年3月25日 下午3:53
下一篇 2022年3月26日 下午8:03

相关推荐