数据科学:Matplotlib、Seaborn笔记

数据科学:Numpy、Pandas、Matplotlib、Seaborn

    • 三、Matplotlib
      • 1.Matplotlib subplots函数
      • 2.tight_layout()函数
      • 3.Matplotlib grid()设置网格格式
      • 4.fill_between()函数
      • 示例
        • 设置x轴为时间刻度
        • 热力图
    • 四、Seaborn
      • 1.set
      • 2.seaborn.scatterplot
    • 参考

数据科学:Numpy、Pandas

三、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 np

data1 = 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 mdates

df = 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()

数据科学:Matplotlib、Seaborn笔记_第1张图片
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()

2.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

你可能感兴趣的:(matplotlib,笔记)