机器学习—数据科学库(HM)1

数据分析

数据分析流程

1.提出问题

2.准备数据

3.分析数据

4.获得结论

5.成果可视化

matplotlib

什么是matplotlib

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

axis轴,指的是x或者y这种坐标轴

 假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别[15,13,14.5,17,20,25,26,26,27,22,18,15]

from matplotlib import pyplot as plt
x=range(2,26,2)
#数据在x轴的位置,是一个可迭代对象
y=[15,13,14.5,17,20,25,26,26,27,22,18,15]
plt.plot(x,y)
plt.xticks(range(2,25))
plt.show()

运行结果:可以看出并不美观,也不太直观

目前存在以下几个问题:

  1. 设置图片大小(想要一个高清无码大图)
  2. 保存到本地
  3. 描述信息,比如x轴和y轴表示什么,这个图表示什么
  4. 调整x或者y的刻度的间距
  5. 线条的样式(比如颜色,透明度等)
  6. 标记出特殊的点(比如告诉别人最高点和最低点在哪里)
  7. 给图片添加一个水印(防伪,防止盗用)
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(20,8),dpi=80)
#figure图形图标的意思,在这里指我们画的图
#通过实例化一个figure并且传递参数,能够在后台自动使该figure实例
#在图像模糊的时候可以传入dpi参数,让图片更加清晰
x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,26,24,22,18,15]
plt.plot(x,y)
plt.savefig("保存路径")
plt.show()

 

 x/y轴刻度太稀疏了怎么办?

from matplotlib import pyplot as plt
fig=plt.figure(figsize=(20,8),dpi=80)
x=range(2,26,2)
#数据在x轴的位置,是一个可迭代对象
y=[15,13,14.5,17,20,25,26,26,27,22,18,15]
plt.plot(x,y)
plt.xticks(range(2,25))
plt.yticks(range(min(y),max(y)+1))
plt.show()

如何将x/y轴变稀疏?将步长变长

那么问题来了:  如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况?        a= [random.randint(20,35) for i in range(120)]

from matplotlib import pyplot as plt
import random
plt.figure(figuresize=(20,8),dpi=80)
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
plt.plot(x,y)
plt.show()

 调整x轴刻度

​from matplotlib import pyplot as plt
import random
plt.figure(figsize=(20,8),dpi=80)
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
plt.plot(x,y)

#调整x轴刻度
_x=list(x)
_xtick_labels=["10点()分".format(i) for i in range(60)]
_xtick_labels+=["11点()分".format(i) for i in range(60)]
#_x的位置对应_xtick_label
plt.xticks(_x[::3],_xtick_labels[::3],rotation=270)
plt.show()

​

为什么不显示中文?

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

那么问题来了:如何修改matplotlib的默认字体?        

通过matplotlib.rc可以修改,具体方法参见源码(windows/linux)     

通过matplotlib 下的font_manager可以解决(windows/linux/mac)

from matplotlib import pyplot as plt
import random
import matplotlib
from matplotlib import font_manager
plt.figure(figsize=(20,8),dpi=80)
#第一种方法大多无效,可自行尝试
#windows和linux
#font=('family':'Microsoft YaHei',
#     'weight':'bold',
#     'size':'larger')
#matplotlib.rc("font",**font)
#matplotlib.rc("fonr",family='Mcrosoft YaHei',weight="blod")

#
my_font=font_manager.FontProperties(fname="C:/Windows/Fonts/simhei.ttf")
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
plt.plot(x,y)

#调整x轴刻度
_x=list(x)
_xtick_labels=["10点{}分".format(i) for i in range(60)]
_xtick_labels+=["11点{}分".format(i) for i in range(60)]
#_x的位置对应_xtick_label
plt.xticks(_x[::3],_xtick_labels[::3],rotation=270,fontproperties=my_font)
#添加描述信息
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度 单位(℃)",fontproperties=my_font)
plt.title("10点到12点每分钟的气温变化情况",fontproperties=my_font)
plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值