Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

本章节主要学习数据分析的相关知识,matplotlib,numpy,pandas。

Notifications You must be signed in to change notification settings

li199773/Data-Analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

364 Commits

Repository files navigation

Data-Analysis:数据分析

经上一章节的数据爬虫的学习,本章节开始学习数据分析操作,包括matplotlib,numpy,pandas。本节讲解matplotlib用法和实例,numpy,pandas讲解参见下numpy.md文件和pandas.md文件

01 matplotlib基础绘图和调整x轴

相关介绍:

1.导入 matplotlib 模块

 from matplotlib import pyplot as plt

2.通常要通过figsize 设置图片的大小

3.开始绘图

 plt.plot(x, y)

注:1.我们可以使用 _xtick_label _ytick_label 对x轴和y轴进行设置,如果不进行设置的话,通过默认输出的值达不到我们的需求。

 _xtick_label =
 _ytick_label = 
 plt.xticks(_xtick_label)
 plt.yticks(_ytick_label)

02.01 matplotlib 绘制 0-12 的气温图

目标分析:构建一个2小时的气温图。

相关介绍:

1.matplotlib 不显示中文的问题:需要导入包即可,相关的字体见下一节介绍,中文字体不是很多。

 import matplotlib
 matplotlib.rc("font", family=' DengXian')

2.画出来的图片需要一步一步的去细致的调节。

3.x轴的调节(y轴也是同理)

 _xtick_label = ["10点{}分".format(i) for i in range(1, 60)]

4.进行稀疏操作,取步长

 plt.xticks(list(x)[::3], _xtick_label[::3], rotation=45) # 注意前后要一致,因为要将_xtick_label传递给x,rotation是旋转角度的意思

5.添加描述信息

 plt.xlabel("时间") # x轴的描述信息
 plt.ylabel("温度 单位(°C)") y轴的描述信息
 plt.title("10点到12点每分钟的温度变化情况") 标题的描述信息

02.02 查询 matplotlib 所有的字体

本节主要是对应上一节,使用相关代码查询机器自带的字体。(也可以从网上下载字体嵌入到Pycharm中)

03 matplotlib 绘制两个折线图

目标分析:在一张图片里面绘制2个折线图。

相关介绍:

1.跟在一张图片上面绘制1个折线图的思想是一样子的,只不过需要定义2个 y 轴的数据点。

2.为了使两条线看得更直观一些,在后面加上参数。

 plt.plot(x, y_1, label="自己", color="orange", linestyle=':')
 plt.plot(x, y_2, label="同桌", color="red", linestyle='--') # 相关的颜色还可以在网上进行查找16进制的代码

3.绘制一个网格可以使观看者看得更清晰一点。

 plt.grid(alpha=1) # alpha 是透明度的意思 从0-1进行输出 1是最深,默认为最深的颜色,0是最浅的颜色

4.添加图例(见自己和同桌那一栏 添加参数) 右上角会出现一个小的图例 默认在右上角进行显示 也可以在是左上角。

 plt.legend(loc="upper left") # 在左上角显示

04 matplotlib 绘制散点图

目标介绍:根据数据在一张图片里面绘制出2个散点图。

相关介绍:

1.主要的思想其实跟在一张图片上绘制一个散点图是一样子的,只不过需要建立2个 y 轴的数据。

2.第二数据的x轴需要像右侧偏移。

 x_10 = range(51, 82)
 _xtick_label += ["10月{}日".format(i - 50) for i in x_10]

3.使用 scatter 来绘制散点图

 plt.scatter(x_3, y_3, label="3月份")
 plt.scatter(x_10, y_10, label="10月份")

05.01 matplotlib 绘制条形图

项目需求:假设你获取到了2017年内地电影票房前20的电影和电影的票房数据,绘制一个适合该数据的图形进行可视化处理。

相关介绍:

1.条形图:数据是离散的采用条形图来绘制。

2.条形图:bar

 plt.bar(range(len(a)), b, width=0.3) # 首先先画一个图出来,将宽度绘制成0.3,默认情况下是1.

05.02 matplotlib绘制横条形图

目标介绍:紧接上文,对上面的代码进行升级改造。

相关操作:

1.发现使用rotation旋转45度发现店也是显示不太完整,所以画出横条形图,即x y轴的数据进行调换即可。

2.横条形图:barh

 plt.barh(range(len(a)), b, height=0.3, color="red") 

05.03 matplotlib绘制多次条形图

项目需求:假设知道了三天不同电影的票房记录,绘制一个更加直观的条形图来表示数据。实则是在一个条形图里面绘制不同的数据信息即可。

1.根据x y轴的参数画出简单的图形。

2.发现画出来的图形与x轴对应不上,需要进行相关参数的调节:

 bar_width = 0.2 # 将每个第二个第三个条形图都往右移动0.2个单位即可
 x_14 = list(range(len(a)))
 x_15 = [i + bar_width for i in x_14]
 x_16 = [i + bar_width * 2 for i in x_14]

3.设置x轴的刻度,让电影名字实现居中处理:

 plt.xticks(x_15, a)

06.01 matplotlib绘制直方图

项目需求:假设获取到了250部电影的时长在列表 a 中,希望统计出来电影的时长分布状况(比如时长为100分钟到120分钟的电影的数量,出现的频率等等信息,如何进行呈现)。

一般遇到这种数据量比较大的时候,尽量采用直方图进行呈现。

相关操作:

1.一般需要数据量比较大的时候,我们可以进行在指定的区间内随机生成相应的数字。

 # 可以使用以下代码进行随机获取90-150之间的250个数据
 # import random
 # y = [random.randint(90, 150) for i in range(250)]
 # print(y)

2.plt.hist方法是那些没有统计过的数据,没有办法绘制直方图。所以要进行相应的处理。

3.计算相应的分组:

 d = 3 # 首先我们定义组距
 num_bins = (max(a) - min(a)) // d # 用最大值减去最小值然后除以定义好的组距最后进行取整即可,可以得到分出的组数

4.最后添加描述信息即可。

06.02 matplotlib绘制统计好数据的直方图

相关参数:

 时间段:interval = [0,5,10,15,20,25,30,35,40,45,60,90] 就是x的数据
 组距:width = [5,5,5,5,5,5,5,5,5,15,30,60]
 y轴的数据 quantity = [836,2737,3723,3926,3596,1438,3273,642,824,613,215,47]

相关介绍:

1.可以看出x轴的数据并不是均等分割的,从一开始的每隔5进行分割,到最后的15和30。同样我们可以由组距更直观的看出。

2.条形图与直方图是有区别的。

 plt.bar(range(len(quantity)), quantity, width=1) # width=1的话就会连在一起。

07-12 本章节开始介绍numpy的相关用法及其项目案例,具体详细信息查看 numpy.md 文件。

13-28 本章节开始介绍pandas的相关用法及其项目案例,具体详细信息查看 。

About

本章节主要学习数据分析的相关知识,matplotlib,numpy,pandas。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /