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

文章目录

  • 前言
  • (一)散点图的绘制
    • 1.设置字体
    • 2.设置图片大小
    • 3.设置x轴和y轴的数值
    • 4.使用scatter方法绘制散点图
    • 5.添加图例
    • 6.设置xy轴以及标题的描述信息
    • 7.设置xy的刻度
    • 8.添加水印
    • ☕9.保存和展示
    • 10.源码及结果展示
  • (二)条形图的绘制
  • (三)直方图的绘制
    • 1.设置字体
    • 2.设置组距
    • 3.绘制直方图
    • 4.设置x轴的刻度
    • 5.设置xy以及标题说明
    • 6.添加网格(可选)
    • ☘7.保存及展示
    • 8.源码及结果
  • 结语

作者简介: 苏凉(在python路上)
博客主页: 苏凉.py的博客
名言警句: 海阔凭鱼跃,天高任鸟飞。
要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!
关注✨点赞收藏

前言

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

在上一篇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绘图(散点图,条形图,直方图)_第2张图片

(二)条形图的绘制

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

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

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

若我们需要将图形横过来则需要用到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绘图(散点图,条形图,直方图)_第4张图片

(三)直方图的绘制

下面以求一个列表中的数字的出现次数为例:该列表为 [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绘图(散点图,条形图,直方图)_第5张图片

结语

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

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

你可能感兴趣的:(Matplotlib绘图,python,数据分析)