前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据分析篇(一)

数据分析篇(一)

作者头像
不断折腾
发布2019-09-23 11:01:03
6670
发布2019-09-23 11:01:03
举报
文章被收录于专栏:折腾折腾再折腾
前言:数据分析是机器学习的必修课,在数据分析中我们会学到三个模块的使用matplotlib(画图使用),numpy(处理数值),pandas(在numpy的基础上可以处理字符串等等),简述数据分析就是从一大推数据中,找出一定的规律,从而帮助我们得到我们想要的结果,再把这些结果做成可视化,帮助我们做一些决定。

数据的可视化是能够更直观的呈现,同时更具有说服力

折线图

首先,折线图是一个一个坐标连接起来,我们看到的就是折线图。

实例:

首先我们需要安装matplotlib模块:pip install matplotlib

# 导入matplotlib模块中的pyplot来帮助我们画图

# 给他一个别名 plt

from matplotlib import pyplot as plt

'''

上面也说了,折线图就是一个一个坐标连起来的,我们写几个坐标

(1,3),(2,6),(3,1),(4,7),(5,4)

我们就用这几个坐标来完成我们的绘图

'''

# 定义我们的x轴,上面我们的x轴为1,2,3,4,5

# 我们直接可以range(1,6)

x = range(1,6)

# 定义y轴

y = [3,6,1,7,4]

# 画图,传入x,y来绘图

plt.plot(x,y)

# 把图片弹出来

plt.show()

就可以看到一张这样的图弹出来:

同样我们还可以设置图片的大小,可以让图片更加清晰,也可以将图片保存在本地。

1.1、添加图片大小,加清晰度

我们需要在绘图之前加上:

# 设置图片的大小和清晰度

# figsize表示大小,dip表示清晰度

plt.figure(figsize=(18,8),dip = 50)

# 如果想让x轴的刻度再密集一点,可以写成:

添加一个x轴刻度:

# 让x轴刻度更加密集

plt.xticks([i/2 for i in range(0,13)])

添加y轴刻度

# 让y轴更加密集,防止取不到y值,所以我们取最小值和最大值+一个任意数

plt.yticks(range(min(y),max(y)+10))

# x轴想要显示汉字怎么办?

只需要:

from matplotlib import font_manager

# 设置中文字体

# windows的字体都在C:/Windows/Fonts文件下。

my_font = font_manager.FontProperties(fname = "C:/Windows/Fonts/simsun.ttc",size=14)

_x = [f'{i}坐标' for i in range(0,7)]

plt.xticks(x,_x,fontproperties=my_font,rotation=45)

# rotation 表示字体旋转45度。

绘图的时候需要一一对应,此时运行不会显示中文,我们需要设置默认字体。就会在x轴每个坐标后添加坐标两个字。

此时效果变成:

添加描述信息:

plt.xlabel("我是X轴",fontproperties=my_font)

plt.ylabel("我是Y轴",fontproperties=my_font)

plt.title("我的第一个折线图!",fontproperties=my_font)

添加网格(alpha表示透明度)

plt.grid(alpha=0.5)

图片的保存

# 保存到当前文件夹

plt.asvefig(./1.png)

如果你需要绘制两条折线(y轴不一样),直接再添加一个:

plt.plot(x,y2)即可。

如果是两条折线图,可以再右上角设置那条线表示什么或者颜色。

比如:

plt.plot(x,y1,lable='我是y1')

plt.plot(x,y2,lable='我是y1')

# 设置中文字体,只有在legend函数中设置字体是prop,其他都是fontproperties。

plt.legend(prop=my_font)

# plot还有其他参数 color表示参数,linestyle表示线条风格,比如写上linestyle='--',linewidth设置线条的粗细,alpha表示透明度。

基本代码:

散点图

和折线图的唯一区别就是

plt.plot是折线图,plt.scatter是散点图。

实例:

from matplotlib import pyplot as plt

from matplotlib import font_manager

# 设置中文字体

my_font = font_manager.FontProperties(fname = "C:/Windows/Fonts/simsun.ttc",size=14)

# 天气数据来源http://www.tianqihoubao.com/lishi/wuhan/

# 武汉2018,10月最高温度

y_10 = [25,26,27,28,28,29,27,27,23,24,23,25,23,16,18,21,24,23,18,19,17,22,24,24,22,23,24,25,26,26,27]

# 武汉2018,11月最高温度

y_11 = [25,22,23,24,18,11,9,16,19,18,18,18,18,16,15,14,12,11,14,15,15,16,17,18,18,19,20,20,20,19]

# 十月x轴

x_10 = range(1,32)

# 十一月x轴,中间间隔20来分开

x_11 = range(53,83)

# 设置图形大小

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

# 绘制散点图10月

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

# 绘制闪电图11月

plt.scatter(x_11,y_11,label='11月')

# 图例标题中文 如果需要在左边添加参数loc = "upper left"

plt.legend(prop = my_font)

# 调整刻度显示中文

_x = list(x_10)+list(x_11)

_xticks = [f'10月{i}日'for i in x_10]

_xticks += [f'11月{i-53}日'for i in x_11]

# [::3]表示间隔三个显示

plt.xticks(_x[::3],_xticks[::3],fontProperties = my_font,rotation=45)

# 添加描述信息

plt.xlabel("时间",fontProperties = my_font)

plt.ylabel("温度",fontProperties = my_font)

plt.title("2018",fontProperties = my_font)

# 展示图片

plt.show()

最后效果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python入门到放弃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档