数据分析 numpy、pandas、matplotlib

发布时间:2024-02-27 12:01

一、数据分析初始:

1.为什么要有数据分析?

        a.岗位需求;

        b.python数据科学的基础;

c.机器学习的基础;

2.数据分析:

        用适当的方法对收集的大量数据进行分析,帮助人们做出判断,以便采取适当的行动。

3.数据分析的流程:
        提出问题->准备数据->分析数据->获取结论->成果可视化

4.CONDA环境安装:

        conad : data science package & environment manger


        创建环境:conda create --name python3 python=3


        切换环境:

                        windows:active python3

                        linux/macos:source active python3


        官网地址:Anaconda | Individual Edition

5.jupyter notabook工具

二、matplotlib

1.什么是matplotlib

matplotlib:最流行的Python库层绘图库,主要做数据的可视化图表,名字取材于MATLAB,模仿                  MATLAB构建

        a.能将数据进行可视化,更加直观地呈现;

        b.是数据更加客观、更具有说服力;

2.matplotlib基本要点

3.matplotlib的散点图、直方图、柱状图

4.更多的画图工具

案例:

from matplotlib import pyplot as plt


fig = plt.figure( figsize=(20,8), dpi = 80)
    # figure 图形图标的意思,在这里指的就是我们画的图;
    # 通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例;
    # 在图像模糊的时候可以传入dpi参数,让图像更加清晰;  


x = range(2, 26, 2)  # 数据在x轴的位置,是一个可迭代对象;
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15]
    # 数据在y轴的位置,是一个可迭代对象;
    # x轴和y轴的数据一起组成了所有要回指出的坐标;
    # 分别是(2,15) (4,13) (6,14.5) (8,17)
plt.plot(x, y)  # 传入x和y,并通过plot绘制出折线图;


pl.savefig("./sig_size.png")  # 保存图片
    # 可以保存为svg这种矢量图格式,放大不会有锯齿; 

plt.show()   # 在执行的时候展示图象;

 1.调整大小等因素:

from matplotlib import pyplot as plt

x = range(2, 26, 2)
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15]

# 设置图片大小
plt.figure(figsize=(15, 8), dpi=80)

# 绘图
plt.plot(x, y)

# 设置x轴的刻度
_xtick_labels = [i/2 for i in range(4, 49)]
plt.xticks(range(2, 25))
plt.yticks(range(min(y), max(y)+1))

# 保存
plt.savefig("./t1.png")

# 展示图形
plt.show()

2.设置中文:

为什么无法显示中文:

        matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字;

查看linux/mac下面支持的字体:

        fc-list  -> 查看支持的字体

        fc_list :lang=zh  -> 查看支持的中文(冒号前面有空格)

那么如何修改matplotlib的,默认字体?

        1.通过matplotlib.rc 可以修改,具体方法参考源码,复制过来并修改(windows/linux);

         2.通过matplotlib 下的font_manger可以解决(windows/linux/mac)

练习

1. 如果列表a表示10点到12点的每一分中的气温,如何绘制折线图观察每一分钟的变化情况?

        a = [random.randint(20,35) for i in range(120)]

2.假设大家在30岁的时候,根据自己的实际状况,统计出来了从11岁到30岁每年交的女(男)朋友的数量列表a,请绘制出该数据的折线图,以便分析自己每年交女(男)朋友的数量走势。

        a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]

        要求:   

                     y轴表示个数;

                     x轴表示岁数,比如11岁,12岁;

知识点小结:

1、整体框架:

from matplotlib import pyplot as pls

x=range(25, 30)
y=[10, 23, 52, 12, 45]

plt.plot(x, y)   #导入数据,绘图

plt.show()       #图片展示 

2、设置图片大小、精度:

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

3.调整x轴的刻度:

# 调整x、y轴有小数
_xtick_labels = [i/2 for i in range(4,49)]
plt.xticks(range(2,25)
plt.yticks(range(min(y), max(y)+1))
# 调整时间(中文),x轴竖直显示
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i-60) for i in range(60, 120)]
# 取步长,数字和字符串一一对应,数据的长度一样
plt.xticks(list(x)[::10], _xtick_labels[::10], rotation=90)
# rotation 旋转90度

4、图片保存

plt.savefig("./t1.png")

5.显示中文:
 

# 法一:
font = {'family': 'MicroSoft YaHei',
        'weight': 'bold',
        'size': 'larger'}
# matplotlib.rc('font', **font)  # 直接用**font替换(运行有问题,有待思考)或者下面
matplotlib.rc("font", family='MicroSoft YaHei')


# (后面直接写就OK无影响)
# 添加描述信息
plt.xlabel("时间")
plt.ylabel("温度 单位(℃)")
plt.title("10点到12点每分钟的气温变化情况")
# 法二:(记得别忘记加:fontproperties=my_font)
from matplotlib import font_manager
# 设置字体另一种方法
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\simfang.ttf")
plt.xticks(list(x)[::10], _xtick_labels[::10], rotation=30, fontproperties=my_font )

# 添加描述信息
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度 单位(℃)", fontproperties=my_font)
plt.title("10点到12点每分钟的气温变化情况", fontproperties=my_font)

6、设置描述信息:(注意两种中文设置字体的区别)

# 添加描述信息
plt.xlabel("时间")
plt.ylabel("温度 单位(℃)")
plt.title("10点到12点每分钟的气温变化情况")

7、双轴图、图例、网格

# 数据
x = range(11, 31)
y_1 = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
y_2 = [1, 0, 3, 1, 2, 2, 3, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# 绘图 (可调格式 : color、linestyle、linewidth、alpha )
plt.plot(x, y_1, label='自己')
plt.plot(x, y_2, label='同桌')

# 绘制网格(透明度)
plt.grid(alpha=0.1)

# 增加图例 ( prop=my_font 只有在这个地方是用prop在其他地方都是使用fontproperties )
plt.legend()

 

数据分析 numpy、pandas、matplotlib_第1张图片

补:

        安装环境:anaconda (在清华大学开源软件镜像站下载安装)

数据分析 numpy、pandas、matplotlib_第2张图片

数据分析 numpy、pandas、matplotlib_第3张图片

数据分析 numpy、pandas、matplotlib_第4张图片

 颜色十六进制查询:RGB颜色值与十六进制颜色码转换工具

matplotlib图例代码: Plot types — Matplotlib 3.5.1 documentation

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号