机器学习-数据科学库(HM)-matplotlib部分

数据分析能够帮助我们从数据中分析出一些特征。
数据分析是用适当的方法对收集来的大量数据进行分析,帮助人们作出判断,以便采取适当行动。

数据分析的流程

在这里插入图片描述
设置环境
在这里插入图片描述

matplotlib

能够将视图可视化呈现。是仿照matlab的绘图方法的绘图库。
官方文档的链接
官方已经提示尽量不要用pylab
在这里插入图片描述
pylab是,包括:模块matplotlib.pyplot,numpy,numpy.fft, numpy.linalg,numpy.random,和一些额外的功能,所有这些都在单个名称空间。它的最初目的是通过将所有函数导入全局名称空间来模仿类似于MATLAB的工作方式。如今,这被认为是不好的风格。
下面的介绍虽然是我自己写的,但还是觉得写得十分混乱。大家就看看就好,我会尽快以代码例子的形式展示出来(只涉及常用的语句),这样查看使用起来会比较方便。
绘制二维线图的代码例子

pyplot.plot绘制二维线图

通用形式:

plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)

plot(x, y)        #使用默认的线条样式和颜色绘制x和y
plot(x, y, 'bo')  #用蓝色圆圈标记x和y
plot(y)           #以x=0:n-1为索引绘制y
plot(y,'r+')     #以x=0:n-1为索引绘制y,并且线为红色加号
plot(x, y, 'go--', linewidth=2, markersize=12)
plot(x, y, color='green', marker='o', linestyle='dashed',linewidth=2, markersize=12)
plot('xlabel', 'ylabel', data=obj)#你可以在data参数中提供对象,并只给出x和y的标签,而不是在x和y中给出数据,当然也可以将data参数直接写在xlable和ylable中。data支持 dict, a pandas.DataFrame or a structured numpy array.

绘制多组数据在一张图中:
绘制两次

plot(x1, y1, 'bo')
plot(x2, y2, 'go')

在数据中提供两列

x = [1, 2, 3]
y = np.array([[1, 2], [3, 4], [5, 6]])
plot(x, y)

在plot中提供两组数据

plot(x1, y1, 'g^', x2, y2, 'g-')

如果你不指定颜色,它们也会被分配默认的颜色。

参数:
x,y:类数组或标量数据点的水平/垂直坐标。X值是可选的,默认为range(len(y))。通常,这些参数是一维数组。它们也可以是标量,或二维的(在这种情况下,列表示单独的数据集)。这些参数不能作为关键字传递。
fmt:字符串类型,可选内容。格式字符串。“ro”代表红色的圆圈。有关格式字符串的完整描述,请参见Notes部分。格式字符串只是快速设置基本行属性的缩写。所有这些以及更多的内容都可以通过关键字参数进行控制。此参数不能作为关键字传递。
data:参数,可选项。带有标记数据的对象。如果给出,提供标号名称以绘制x和y。
**kwargs:用于指定绘图属性,可选。例如:

plot([1, 2, 3], [1, 2, 3], 'go-', label='line 1', linewidth=2)
plot([1, 2, 3], [1, 4, 9], 'rs', label='line 2')

下面的是**kwargs中的内容,输入时可以直接写例如:linestyle=’-'
color:设置颜色,英文颜色或十六进制颜色表示。
linestyle:见下表

Linestyle描述
‘-’ or ‘solid’实线
‘–’ or ‘dashed’虚线
‘-.’ or ‘dashdot’点划线
‘:’ or ‘dotted’点线
‘None’ or ’ ’ or ‘’不画

linewidth:线宽,小数表示

pyplot.scatter绘制散点图

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
参数
x, y:float or array-like, shape (n, )
与plot线图一样,可以对x轴、y轴调整、设置标签、改变labels…

pyplot.bar绘制条形图

链接
matplotlib.pyplot.bar(x,height,width = 0.8,bottom = None,*,align = ‘center’,data = None,** kwargs)
依旧同理。在此语句中可以设置width=来设置条形图的宽度。
如果你希望横向绘制,x与y应该相互调换,设置线条宽度时,应使用height设置。

pyplot.hist绘制直方图

pyplot.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype=‘bar’, align=‘mid’, orientation=‘vertical’, rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)
注意分组时组距选择一个能被整除的值,否则会出现对不齐。
在这里插入图片描述

频数直方图、频率直方图

对于图像纵轴的改变。

pyplot.bar绘制条形图

pyplot.bar(x,height,width = 0.8,bottom = None,*,align = ‘center’,data = None,** kwargs)

一些通用的语句

font_manager设置字体

用于跨平台查找,管理和使用字体的模块。matplotlib并不支持中文字符,需要自己设置,防止中文乱码。
font_manager.FontProperties(fname=“字体位置”)
字体位置window,在c:\windows\front下,里面的字体你都可以使用
在这里插入图片描述
如果还是出现乱码,添加一下代码:

pyplot.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
pyplot.rcParams['axes.unicode_minus']=False #用来正常显示负号

pyplot.figtext 在窗口中添加文本,不是标签

figtext(x,y,s,fontdict = None,** kwargs)
参数
x,y:浮点数,设置文本位置。
s:文本内容。
** kwargs:其他属性。
下面的是**kwargs中的内容
backgroundcolor:背景颜色
color:字体颜色
fontsize:字体大小,浮点数设置或’xx-small’,‘x-small’,‘small’,‘medium’,‘large’,‘x-large’,'xx-large’来表示。

pyplot.subplots 创建子图,在一个窗口中绘制多个图

pyplot.subplots(nrows = 1,ncols = 1,*,sharex = False,sharey = False,挤压= True,subplot_kw = None,gridspec_kw = None,** fig_kw)
nrows,ncols:int,默认值:1 子图网格的行数/列数。
sharex,sharey:bool or {‘none’, ‘all’, ‘row’, ‘col’}, default: False。控制x(sharex)或y(sharey)轴之间的属性共享:这部分查看文档吧,这里不列出了。
主要是用前面nrows和ncols创建窗口

pyplot.figure 创建一个新窗口,或激活一个现有窗口。

一般传递的参数有下面这些,其他见官方文档
参数
figsize:浮点数,宽度,高度以英寸为单位。
DPI:默认值为100。
facecolor:背景颜色,默认白色。
edgecolor:边框颜色,默认颜色。
frameon:布尔值,默认True,是否绘制边框。

pyplot.figlegend 图例

1.自动检测要在图例中显示的元素

ax.plot([1, 2, 3], label='Inline label')
fig.figlegend()

line, = ax.plot([1, 2, 3])
line.set_label('Label via method')
fig.figlegend()

2.标记现有的绘图元素
可以注意到,这种方法是按顺序来给出标签,为避免混淆,尽量不要使用。

fig, (ax1, ax2)  = plt.subplots(1, 2)
ax1.plot([1, 3, 5], color='blue')
ax2.plot([2, 4, 6], color='red')
fig.figlegend(['the blues', 'the reds'])

3.明确定义图例中的元素

fig.figlegend([line1, line2, line3], ['label1', 'label2', 'label3'])

其他参数
loc:标签位置
在这里插入图片描述
ncol:整数,默认值:1。是图例具有的列数。
fontsize:字体大小,int或{‘xx-small’,‘x-small’,‘small’,‘medium’,‘large’,‘x-large’,‘xx-large’}。
labelcolor:标签颜色,颜色字符串或十六进制。

pyplot.grid 绘制网格线

参数
**color **:设置线的颜色,颜色字符串或十六进制。

pyplot.savefig保存图像

pyplot.savefig(‘地址\文件名.格式’)保存图像

pyplot.xlabel 设置x轴的标签(y同理)

xlabel(xlabel,fontdict =无,labelpad =无,*,loc =无,** kwargs)
参数
xlabel:标签文字。
loc:位置,‘left’, ‘center’, ‘right’。(y变成’bottom’, ‘center’, ‘top’)

pyplot.xticks 设置x轴的当前标记位置和标签。(y同理)

xticks(ticks=None, labels=None, **kwargs)[source]
参数
ticks:xtick位置列表。传递空列表将删除所有xtick,就是你打算显示的点的横(纵)坐标。
例子:

locs, labels = xticks()  # 获取当前位置和标签。
xticks(np.arange(0, 1, step=0.2))  # 设置标签的位置。
xticks(np.arange(3), ['Tom', 'Dick', 'Sue'])  # 设置文本标签。
xticks([0, 1, 2], ['January', 'February', 'March'],rotation=20)  # 设置文本标签和属性。
xticks([])  #去除标签

pyplot.show()显示绘制的图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值