数据科学:Numpy、Pandas
数据科学:Matplotlib、Seaborn笔记
数据科学:Numpy、Pandas、Matplotlib、Seaborn、Scipy、Scikit-Learn
- 三、Matplotlib
- 1.Matplotlib subplots函数
- 2.tight_layout()函数
- 3.Matplotlib grid()设置网格格式
- 4.fill_between()函数
- 示例
- 设置x轴为时间刻度
- 热力图
- 四、Seaborn
- 1.set
- 常用函数
- 3.seaborn.scatterplot
- 参考
三、Matplotlib
1.Matplotlib subplots函数
ig, ax = plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False, **kwargs)
- nrows: 行数
- ncols: 列数
- sharex: 是否共享x轴刻度
- sharey: 是否共享y轴刻度
- figsize: 图形大小
# 绘制多个箱线图
import matplotlib.pyplot as plt
import numpy as npdata1 = np.random.randn(1000)
data2 = np.random.randn(1000)fig, axs = plt.subplots(2, sharex=True, sharey=True)
fig.suptitle('Multiple Boxplot')axs[0].boxplot(data1)
axs[0].set_title('Boxplot 1')
axs[1].boxplot(data2)
axs[1].set_title('Boxplot 2')plt.show()
2.tight_layout()函数
matplotlib库的pyplot模块中的tight_layout()函数用于自动调整子图参数以提供指定的填充。
matplotlib.pyplot.tight_layout(pad=1.08, h_pad=None, w_pad=None, rect=None)
- pad:此参数用于在图形边和子图的边之间进行填充,以字体大小的一部分表示。
- h_pad,w_pad:这些参数用于相邻子图的边之间的填充(高度/宽度),作为字体大小的一部分。
- rect:此参数是整个子图区域将适合的归一化图形坐标中的矩形。
3.Matplotlib grid()设置网格格式
通过Matplotlib axes 对象提供的 grid() 方法可以开启或者关闭画布中的网格(即是否显示网格)以及网格的主/次刻度。除此之外,grid() 函数还可以设置网格的颜色、线型以及线宽等属性。
grid(color='b', ls = '-.', lw = 0.25)
- color:表示网格线的颜色;
- ls:表示网格线的样式;
- lw:表示网格线的宽度;
4.fill_between()函数
fill_between和fill_betweenx函数的作用都是填充两条曲线之间的区域。其中
- fill_between函数作用是填充两条水平曲线之间的区域。
- fill_betweenx函数作用是填充两条垂直曲线之间的区域。
matplotlib.pyplot.fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, *, data=None, **kwargs)
参数说明如下:
- x:定义两条曲线的节点的x坐标。长度为N的类数组结构。必备参数。
- y1:定义曲线的节点的y坐标。长度为N的类数组结构或者标量。必备参数。
- y2:定义第2条曲线的节点的y坐标。长度为N的类数组结构或者标量,默认值为0。可选参数。
- where:根据条件排除一些填充区域。长度为N的布尔数组。默认值为None。可选参数。
- interpolate:当该属性为True时将计算实际交点,并将填充区域延伸到此点。布尔值。默认值为False。注意:该属性只有使用了where属性且两条曲线相互交叉时才生效。
示例
设置x轴为时间刻度
imoort pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdatesdf = pd.read_excel("***.xlsx")
# 绘制图像
fig, ax = plt.subplots()
ax.plot(df['time'], df['*'])
# 配置x轴时间间隔
time_format = mdates.DateFormatter('%H:%M:%S')
ax.xaxis.set_major_formatter(time_format)
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=240))
# 设置刻度位置
ax.set_xticks(pd.date_range(df['time'][0], df['time'][-1], freq='4h'))
# 还可以使用ax.set_xticklabels()来设置刻度的标签
# 设置开始坐标
ax.set_xlim(df['time'][0], df['time'][-1])
# 旋转x轴标签
fig.autofmt_xdate()
# 展示图形
plt.show()
热力图
散点图坐标轴为数值型数据,热力图类别型数据,体现的是两组变量的相关性
# 案例背景:工厂出货品质的好坏
factories = ['fac1','fac2','fac3','fac4','fac5']
quanlity = ['bad','poor','general','good','great']
result = np.round(np.random.random(25).reshape(5,5),1)fig,ax = plt.subplots(1,1)ax.imshow(result)# 轮流锁定单元格
for i in np.arange(len(factories)):for j in np.arange(len(quanlity)):plt.text(j,i,result[i][j],color='w',ha='center',va='center')# 设置坐标轴的类别数据标签
ax.set_xticks(np.arange(len(quanlity)))
ax.set_yticks(np.arange(len(factories)))
ax.set_xticklabels(quanlity)
ax.set_yticklabels(factories)# 修饰工作
ax.set_title('goods quality of factories')
fig.tight_layout()
Python数据可视化matplotlib和pyecharts参数详解
四、Seaborn
1.set
设置绘图的背景色、风格、字型、字体等
seaborn.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=True, rc=None)
Seaborn有五个预设好的主题: darkgrid, whitegrid,dark,white,和 ticks,默认为darkgrid
控制风格:axes_style(), set_style()缩放绘图:plotting_context(), set_context()
常用函数
sns.distplot() – 绘制单变量分布图
sns.jointplot() – 绘制双变量关系图
sns.pairplot() – 绘制多变量关系图
sns.barplot() – 绘制条形图
sns.countplot() – 绘制计数图
sns.boxplot() – 绘制箱线图
sns.violinplot() – 绘制小提琴图
sns.heatmap() – 绘制热力图
sns.lineplot() – 绘制线图
sns.scatterplot() – 绘制散点图
3.seaborn.scatterplot
seaborn.scatterplot(x=None, y=None, - vectors or keys in data 作用:指定 x 轴和 y 轴上位置的变量。hue=None, - vector or key in data 作用:将生成不同颜色的点的变量分组。可以是分类或数字,尽管颜色映射在后一种情况下会有不同的行为。style=None, - vector or key in data 作用:将生成具有不同标记的点的变量分组。可以具有数字 dtype,但始终被视为分类类型。size=None, - vector or key in data 作用:将生成不同大小的点的变量分组。可以是分类型的,也可以是数值型的,尽管大小映射在后一种情况下会有不同的行为data=None, - pandas.DataFrame, numpy.ndarray, mapping, or sequence 作用:输入数据结构。要么是可以分配给命名变量的长形式向量集合,要么是将在内部重新形成的宽形式数据集合。sizes=None, - list, dict, or tuple 作用:一个对象,它决定使用时如何选择大小。它始终可以是大小值的列表,或者是变量到大小的 dict 映射级别。当是 numeric 时,它也可以是一个元组,指定要使用的最小和最大大小,以便在这个范围内对其他值进行规范化size_order=None, - list 作用:为变量级别的外观指定顺序,否则根据数据确定它们。如果变量是 numeric.sizeize,则不相关size_norm=None, - tuple or Normalize object 作用:当变量是 numeric.size 时,用于缩放绘图对象的数据单元的规范化markers=True, - boolean, list, or dictionary 作用:对象,确定如何为变量的不同级别绘制标记。设置为将使用默认标记,或者可以将变量的标记列表或字典映射级别传递给标记。设置为将绘制无标记线。在 matplotlib.styleTruestyleFalse 中指定标记alpha=None, - float 作用:点的比例不透明度。
):
参考
matplotlib中文
https://github.com/datawhalechina/fantastic-matplotlib