发布时间: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工具
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()
补:
安装环境:anaconda (在清华大学开源软件镜像站下载安装)
颜色十六进制查询:RGB颜色值与十六进制颜色码转换工具
matplotlib图例代码: Plot types — Matplotlib 3.5.1 documentation
视频化全链路智能上云?一文详解什么是阿里云视频云「智能媒体生产」
ECCV2018超分辨率MSRN:Multi-scale Residual Network for Image Super-Resolution
SAP 电商云 Spartacus UI BaseSiteInitializer 的实现明细
技术可以小白,但心态不行!聊聊在黑客的世界里,我们如何正确提问!
成功解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
AMiner发布2022 AI 2000人工智能最具影响力学者名单