【Python基础】seaborn 使用指南(超详细!)

seaborn

1 seaborn简介

seaborn :带着定制主题和高级界面控制的Matplotlib扩展包,兼容Numpy与Pandas数据结构;

官网地址:http://seaborn.pydata.org/index.html (http://seaborn.pydata.org/index.html)

1.1 主要特征:

  • 基于matplotlib绘图风格,增加了绘图模式
  • 增加调色板功能,色彩更加丰富
  • 绘图接口功能强大,能够处理更加复杂图形绘制
  • 用数据子集绘制与比较单变量和双变量分布的功能
  • 用聚类算法可视化矩阵数据
  • 灵活运用处理时间序列数据
  • 利用网格建立复杂图像集

一句话概括:seaborn能够使用最简单的代码,将数据进行更好的展示;

1.2 seaborn主要内容

  • 图表风格,颜色,线条等基本设置
  • seaborn常用的数据集
  • seaborn常用图表详解

2 seaborn基本设置

import seaborn as sns
sns.__version__
'0.13.0'
import matplotlib.pyplot as plt
#导入seaborn
import seaborn as sns
import numpy as np
import pandas as pd
%matplotlib inline
#使用lineplot绘制直线
sns.lineplot(x=[1,2,3],y=[1,2,3])
<AxesSubplot: >


png

2.1 图表大小:context

sns.set_context(context=None, font_scale=1, rc=None)

  • context值:paper, notebook, talk, poster
  • font_scale:字体缩放
  • 设置之后在jupyter中一直生效
x = [1,2,3]
y = [1,2,3]
sns.set_context('notebook', font_scale=1)
sns.lineplot(x=x,y=y)
<AxesSubplot: >


png

2.2 设置风格

sns.set_style(style=None, rc=None)

  • style:darkgrid, whitegrid, dark, white, ticks
  • rc:字典格式,设置seaborn其他样式,例如:字体,子大小等
x = [1,2,3]
y = [1,2,3]
#改变风格
sns.set_style('darkgrid')
sns.lineplot(x=x,y=y)
<AxesSubplot: >


png

# 获取当前风格
sns.axes_style()
{'axes.facecolor': '#EAEAF2',
 'axes.edgecolor': 'white',
 'axes.grid': True,
 'axes.axisbelow': True,
 'axes.labelcolor': '.15',
 'figure.facecolor': 'white',
 'grid.color': 'white',
 'grid.linestyle': '-',
 'text.color': '.15',
 'xtick.color': '.15',
 'ytick.color': '.15',
 'xtick.direction': 'out',
 'ytick.direction': 'out',
 'lines.solid_capstyle': <CapStyle.round: 'round'>,
 'patch.edgecolor': 'w',
 'patch.force_edgecolor': True,
 'image.cmap': 'rocket',
 'font.family': ['sans-serif'],
 'font.sans-serif': ['Arial',
  'DejaVu Sans',
  'Liberation Sans',
  'Bitstream Vera Sans',
  'sans-serif'],
 'xtick.bottom': False,
 'xtick.top': False,
 'ytick.left': False,
 'ytick.right': False,
 'axes.spines.left': True,
 'axes.spines.bottom': True,
 'axes.spines.right': True,
 'axes.spines.top': True}

2.3 设置字体与支持中文

sns.pointplot(x=[1,2,3],y=[4,5,6])
plt.xlabel('表格')
sns.set_style({"font.sans-serif":['simhei','Droid Sans Fallback']})
#sns.despine()


png

2.4 设置临时风格

sns.axes_style(style=None, rc=None)

def myplot():
    sns.lineplot(x=[1,2,3],y=[1,2,3])
#设置临时风格 
with sns.axes_style("whitegrid"):
    plt.subplot(211)
    myplot()
plt.subplot(212)
myplot()


png

2.5 设置调色板

sns.set_palette(palette, n_colors=None, desat=None, color_codes=False)

  • palette:‘deep’, ‘muted’, ‘pastel’, ‘bright’, ‘dark’, 'colorblind’或者hls, husl
  • n_colors:颜色数量
  • 作用:调色板,使用plot方法绘制时,颜色使用深度不一样
# 设置调色板
import numpy as np
sns.set_palette('dark')
x = y = np.array([1,2,3])
sns.lineplot(x=x,y=y)
sns.lineplot(x=x,y=y+1)
<AxesSubplot: >


png

# 设置hls, n_colors颜色种类
sns.set_palette('hls', n_colors=3)
lines = np.arange(0,40).reshape(20,2)
for line in lines:
    plt.plot(line)


png

2.6 set方法

sns.set(context='notebook',style='darkgrid',palette='deep',font='sans-serif',font_scale=1,color_codes=True,rc=None,)

上面方法的集合体

#设置默认值
sns.set()
x = y = np.array([1,2,3])
sns.lineplot(x=x,y=y)
sns.lineplot(x=x,y=y+1)
<AxesSubplot: >


png

3 调色板

颜色类别:

  • 分类:彼此间差异较大
  • 连续:颜色按照顺序渐变
  • 离散:中间颜色浅,两端颜色深

主要方法:

  • 获取颜色:sns.color_palette(palette=None, n_colors=None, desat=None)
  • 显示颜色:sns.palplot(pal, size=1)

3.1 分类色板(qualitative)

  1. 默认主题

    默认6中颜色:deep, muted, pastel, bright, dark, colorblind;

    当palette设置为以上几种颜色,n_colors设置值超过deep颜色种类是,使用重复颜色;

# 产生颜色
cls = sns.color_palette(palette='deep')
# 使用palplot绘制颜色
sns.palplot(cls)
# 颜色实质:RGB组成的元祖
cls


png

  1. hls色圈系统

    在一个色圈空间内使用均匀分布的颜色;

    主要方法:

    • 通用方法:cls = sns.color_palette(palette=‘hls’,)/cls = sns.color_palette(palette=‘husl’,)
    • 设置hls饱和度等:sns.hls_palette(n_colors=6, h=0.01, l=0.6, s=0.65)
cls = sns.color_palette(palette='hls', n_colors=20)
sns.palplot(cls)


png

cls = sns.color_palette(palette='husl', n_colors=20)
sns.palplot(cls)


png

cls =sns.hls_palette(n_colors=20, h=0.2, l=0.6, s=0.65)
sns.palplot(cls)


png

  1. 使用xkcd颜色来命名颜色
    • xkcd:色板,名称,RGB值
    • xkcd链接:https://xkcd.com/color/rgb/ (https://xkcd.com/color/rgb/)
    • 获取名称对应的RGB值:字典sns.xkcd_rgb
    • 通过xkcd获取颜色:sns.xkcd_palette(colors)
sns.palplot(sns.xkcd_palette(["purple", "violet", "greyish", "aqua", "green"]))


png

3.2 连续调色板

  1. Color Brewer

    color_palette(pallette=' ')中可以填充特定Color Brewer值,设定颜色。

    主要值有:

    Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r,
    Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r, Greys, Greys_r, OrRd, OrRd_r, Oranges, Oranges_r,
    PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, Pastel2, Pastel2_r, PiYG, PiYG_r, PuBu,
    PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, RdBu_r,
    RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r, RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r,
    Set2, Set2_r, Set3, Set3_r, Spectral, Spectral_r, Wistia, Wistia_r, YlGn, YlGnBu, YlGnBu_r, YlGn_r,
    YlOrBr, YlOrBr_r, YlOrRd, YlOrRd_r, afmhot, afmhot_r, autumn, autumn_r, binary,
    binary_r, bone, bone_r, brg, brg_r, bwr, bwr_r, cividis, cividis_r, cool, cool_r, coolwarm,
    coolwarm_r, copper, copper_r, cubehelix, cubehelix_r, flag, flag_r, gist_earth, gist_earth_r,
    gist_gray, gist_gray_r, gist_heat, gist_heat_r, gist_ncar, gist_ncar_r, gist_rainbow, gist_rainbow_r,
    gist_stern, gist_stern_r, gist_yarg, gist_yarg_r, gnuplot, gnuplot2, gnuplot2_r, gnuplot_r,
    gray, gray_r, hot, hot_r, hsv, hsv_r, icefire, icefire_r, inferno, inferno_r,jet, jet_r, magma, magma_r,
    mako, mako_r, nipy_spectral, nipy_spectral_r, ocean, ocean_r, pink, pink_r, plasma, plasma_r,
    prism, prism_r, rainbow, rainbow_r, rocket, rocket_r, seismic, seismic_r, spring, spring_r,
    summer, summer_r, tab10, tab10_r, tab20, tab20_r, tab20b, tab20b_r, tab20c, tab20c_r, terrain, terrain_r,
    twilight, twilight_r, twilight_shifted, twilight_shifted_r, viridis, viridis_r, vlag, vlag_r, winter, winter_r

    使用Color Brewer颜色

    • 末尾加r可翻转色板
    • 末尾加d可变暗
# 产生颜色,通过设置n_colors产生一系列不重复的颜色
cls = sns.color_palette(palette='Blues', n_colors=50)
sns.palplot(cls)


png

# 末尾加r可翻转色板
cls = sns.color_palette(palette='Blues_r', n_colors=50)
sns.palplot(cls)


png

# 末尾加d可变暗
cls = sns.color_palette(palette='Blues_d', n_colors=50)
sns.palplot(cls)


png

  1. cubehelix_palette调色板

    sns.cubehelix_palette(n_colors=6,start=0,rot=0.4,gamma=1.0,hue=0.8,light=0.85,dark=0.15,reverse=False,as_cmap=False)

sns.palplot(sns.cubehelix_palette(10, start=.3, rot=-.5))


png

  1. 单一调色板

    • sns.light_palette(color,n_colors=6,reverse=False,as_cmap=False,input='rgb',)
    • sns.dark_palette(color,n_colors=6,reverse=False,as_cmap=False,input='rgb',)
sns.palplot(sns.light_palette('green',n_colors=20))


png

3.3 离散色板

Color Brewer色板

diverging_palette:sns.diverging_palette(h_neg,h_pos,s=75,l=50,sep=10,n=6,center='light',as_cmap=False)

主要参数:

  • s与l:明暗
  • n:控制数量
  • sep:中间色的宽度
  • center控制中间色
sns.palplot(sns.color_palette("BrBG", 10))


png

sns.palplot(sns.diverging_palette(200, 290, s=70, l=30, n=10, sep=20, center="dark"))


png

4 seaborn内置数据集

  • 获取数据集名称列表:sns.get_dataset_names()
  • 导入数据集:sns.load_dataset(name, cache=True, data_home=None, **kws)

4.1 数据集

seaborn中内置数据集是非常好的,做分析入门的数据集,常用的数据集;

数据集名称描述
flights1949年到1960年期间,每个月的航班乘客的数量
geyser间歇泉喷发的间隔时间
iris鸢尾花
tips小费
titanic泰坦尼克获救数据
  1. 获取数据集列表
sns.get_dataset_names()
['anagrams',
 'anscombe',
 'attention',
 'brain_networks',
 'car_crashes',
 'diamonds',
 'dots',
 'dowjones',
 'exercise',
 'flights',
 'fmri',
 'geyser',
 'glue',
 'healthexp',
 'iris',
 'mpg',
 'penguins',
 'planets',
 'seaice',
 'taxis',
 'tips',
 'titanic']
  1. 导入数据集
# 导入数据集
pdata = sns.load_dataset('tips')
pdata
total_billtipsexsmokerdaytimesize
016.991.01FemaleNoSunDinner2
110.341.66MaleNoSunDinner3
221.013.50MaleNoSunDinner3
323.683.31MaleNoSunDinner2
424.593.61FemaleNoSunDinner4
........................
23929.035.92MaleNoSatDinner3
24027.182.00FemaleYesSatDinner2
24122.672.00MaleYesSatDinner2
24217.821.75MaleNoSatDinner2
24318.783.00FemaleNoThurDinner2

244 rows × 7 columns

5 seaborn常用的图表

  • seabron支持图表格式比较丰富
  • 文档描述:https://seaborn.apachecn.org/ (https://seaborn.apachecn.org/)

seaborn图表相关方法使用方式与参数类似 常用图表类型如下

5.1 分类图表

  1. barplot方法

    sns.barplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,estimator=<function meanat 0x000001C71D259288>,ci=95,...)

    主要参数:

    参数说明
    x, yx轴数据或者 data 中的列名
    huedata 中的列名,用于分类
    data数据
    order绘制类别变量的顺序
    hue_order绘制 hue 变量的顺序
    estimator统计量方法,默认为 mean
    ci估计值周围的置信区间大小
    n_boot计算置信区间需要迭代的次数
    orient绘图的方向,v 表示垂直,h 表示水平
    color元素的颜色
    palette不同级别 hue 变量的颜色
    ax指定 axes
# 不同时间点消费均值:根据time进行分组,并计算total_bill的均值,使用sns可视化
pdata.groupby('time', observed=False)['total_bill'].mean().plot.bar()
<AxesSubplot: xlabel='time'>


png

# 使用sns.barplot方法
sns.barplot(x='time', y='total_bill', data=pdata)
<AxesSubplot: xlabel='time', ylabel='total_bill'>


png

# 不同时间点,不同性别消费均值:使用barplot中的hue参数
sns.barplot(x='time', y='total_bill', data=pdata, hue = 'sex')
<AxesSubplot: xlabel='time', ylabel='total_bill'>


png

#设置颜色
sns.barplot(x='time', y='total_bill', data=pdata, hue = 'sex', palette='seismic')
<AxesSubplot: xlabel='time', ylabel='total_bill'>


png

  1. 箱状图
    • 展现与类别相关的数据分布状况
    • 使用四分位数表示数据分布情况,可以标识异常数据
    • 箱状图方法:sns.boxplot(x=None, y=None,hue=None,data=None)
    • 主要参数:
      参数说明
      fliersize表示异常值观察的标记的大小
      whis超过高低四分位数时 IQR 的比例
# 箱状图:不同日期消费区别
pdata = sns.load_dataset('tips')
sns.set(style='darkgrid',palette='hls' )
sns.boxplot(x='day', y='total_bill', data=pdata, orient='v')
<AxesSubplot: xlabel='day', ylabel='total_bill'>


png

# 不同性别消费情况
sns.boxplot(x='sex', y='total_bill', data=pdata, orient='v')
<AxesSubplot: xlabel='sex', ylabel='total_bill'>


png

# 不同性别,不同饭点消费情况
sns.boxplot(x='sex', y='total_bill',hue='time', data=pdata, orient='v')
<AxesSubplot: xlabel='sex', ylabel='total_bill'>


png

# 指定不同whis,控制异常区间(默认大于上四分位数1.5或者小于下四分位数的1.5)
sns.boxplot(x='sex', y='total_bill',hue='time', data=pdata, orient='v',whis=1.5)
<AxesSubplot: xlabel='sex', ylabel='total_bill'>


png

  1. 分类散点图

    主要方法:

    • 点可以重复:sns.swarmplot(x=None,y=None,hue=None,data=None,...)
    • 点不能重复:sns.stripplot(x=None,y=None,hue=None,data=None,...)
# 分类散点图
sns.set_palette(sns.color_palette('husl'))
plt.figure(figsize=(16, 4))
ax1 = plt.subplot(1,2,1)
sns.swarmplot(x='sex', y='total_bill',hue='time', data=pdata, ax=ax1, dodge=True)
ax2 = plt.subplot(1,2,2)
sns.stripplot(x='sex', y='total_bill',hue='time', data=pdata, ax=ax2,dodge=True)
<AxesSubplot: xlabel='sex', ylabel='total_bill'>


png

箱状图与分类散点图结合,获取数据分布更加详细信息

sns.set_palette(sns.color_palette('husl'))
sns.swarmplot(x='sex', y='total_bill',hue='time', data=pdata,dodge=True)
sns.set_palette('dark')
sns.boxplot(x='sex', y='total_bill',hue='time', data=pdata)
<AxesSubplot: xlabel='sex', ylabel='total_bill'>


png

  1. 数量统计

    数量统计:sns.countplot(x=None,y=None,hue=None,data=None,...)

#不同性别数量
_ = sns.countplot(x='sex', data=pdata)


png

#不同性别,不同饭点数量
_ = sns.countplot(x='sex', hue='time', data=pdata)


png

5.2 分布图

  1. 直方图
    • sns.distplot(a,bins=None,hist=True,kde=True, rug=False,fit=None,...)(该方法已被弃用)
    • sns.histplot(data,x=None,y=None,hue=None,kde=None,...)
# 使用直方图查看用户消费额度分布
sns.histplot(pdata['total_bill'], color='g', kde=True)
<AxesSubplot: xlabel='total_bill', ylabel='Count'>


png

# 设置不同颜色
sns.distplot(pdata['total_bill'],color='g',rug=True, rug_kws={'color':'r'}, kde_kws={'color':'b'})

 UserWarning: 

`distplot` is a deprecated function and will be removed in seaborn v0.14.0.

Please adapt your code to use either `displot` (a figure-level function with
similar flexibility) or `histplot` (an axes-level function for histograms).

For a guide to updating your code to use the new functions, please see
https://gist.github.com/mwaskom/de44147ed2974457ad6372750bbe5751

  sns.distplot(pdata['total_bill'],color='g',rug=True, rug_kws={'color':'r'}, kde_kws={'color':'b'})





<AxesSubplot: xlabel='total_bill', ylabel='Density'>


png

# 设置bins
sns.histplot(pdata['total_bill'],bins=10, color='g', kde=True)
<AxesSubplot: xlabel='total_bill', ylabel='Count'>


png

  1. KDE图

    • 拟合并绘制单变量或双变量核密度估计图
    • sns.kdeplot(data,data2=None,shade=False,vertical=False,kernel='gau',...)
    • 主要参数:
      方法说明
      data, data2一维数据
      shade是否显示阴影
      vertical方向,True 表示垂直,False 表示水平
      kernel核函数,可选值包括 ‘gau’, ‘cos’, ‘biw’, ‘epa’, ‘tri’, ‘triw’
      bwKDE 的带宽(bandwidth),可选值包括 ‘scott’, ‘silverman’, scalar, pair of scalars
sns.kdeplot(pdata.total_bill, color='r')
<AxesSubplot: xlabel='total_bill', ylabel='Density'>


png

# 双变量核密度:消费与小费
sns.kdeplot(data=pdata, x="total_bill", y="tip", cmap='Accent')
<AxesSubplot: xlabel='total_bill', ylabel='tip'>


png

5.3 关系图

需求:得到一组数据后,查看数据关系:线性关系,类别关系或者其他关系,如何处理?

5.3.1 散点图

sns.scatterplot(x=None,y=None,hue=None,style=None,size=None,data=None,palette=None)

#导入数据:
iris = sns.load_dataset('iris')
#花萼长宽
sns.scatterplot(x='sepal_length', y = 'sepal_width', hue='species', data=iris)
<AxesSubplot: xlabel='sepal_length', ylabel='sepal_width'>


png

#花瓣长宽
sns.scatterplot(x='petal_length', y = 'petal_width', hue='species', data=iris)
<AxesSubplot: xlabel='petal_length', ylabel='petal_width'>


png

5.3.2 线性回归图
  • 拟合数据集回归模型的绘图方法
  • lmplot:sns.lmplot(x,y,data,hue=None,col=None,row=None,…)
import statsmodels
sns.lmplot(x='petal_length', y = 'petal_width', hue='species', data=iris,truncate=False)
<seaborn.axisgrid.FacetGrid at 0x1c6eeac02d0>


png

5.4 其他常用图表

5.4.1 catplot
  • 将分类图绘制到 FacetGrid 上图级别接口
  • 在不同的图表中对数据进行展示,支持多种展示方式
  • seaborn.catplot(x=None, y=None, hue=None, data=None, row=None, col=None, col_wrap=None,...)
  • 返回:FacetGrid
import seaborn as sns

# 使用Seaborn自带的示例数据集"tips"
g = sns.catplot(x="sex", y="total_bill", hue="smoker", data=sns.load_dataset("tips"), kind="box")


png

#定col:
sns.catplot(x="sex", y="total_bill", hue="smoker",data=sns.load_dataset("tips"), kind="box", col = 'time')
<seaborn.axisgrid.FacetGrid at 0x1c6eaa6dad0>


png

#定row:
sns.catplot(x="sex", y="total_bill", hue="smoker",data=sns.load_dataset("tips"), kind="box", row = 'time')
<seaborn.axisgrid.FacetGrid at 0x1c6efdd1c50>


png

#指定row与col
sns.catplot(x="sex", y="total_bill", data=sns.load_dataset("tips"), kind="box", row = 'time', col='day')
<seaborn.axisgrid.FacetGrid at 0x1c6ebc59390>


png

5.4.2 relplot

功能与catplot类似,用与显示两个变量的关系

sns.relplot(x="total_bill", y="tip", data=sns.load_dataset("tips"), kind="line",col='day')
<seaborn.axisgrid.FacetGrid at 0x1c6f09a1710>


png

5.4.3 FacetGrid
  • 根据设置条件生成多个图表,效果与catplot,relplot类似
  • g = sns.FacetGrid(data, row=None, col=None, hue=None, col_wrap=None,...)
  • g.map(func, *args, **kwargs):绘制图表制图表
tips=sns.load_dataset("tips")
g = sns.FacetGrid(tips, row='sex', col='day')
g.map(plt.hist, 'total_bill')
<seaborn.axisgrid.FacetGrid at 0x1c6f168ac50>


png

5.4.4 PairGrid
  • 数据集中成对关系的子图
  • 将数据集中每个变量映射到多个子图中,两两交叉
  • g = sns.PairGrid(data,hue=None,hue_order=None,palette=None,hue_kws=None,vars=None,...)
  • g.map_diag(func, **kwargs):绘制对角线图表
  • g.map_offdiag(func, **kwargs):绘制非对角线图表线图表
iris = sns.load_dataset("iris")
g = sns.PairGrid(iris)
g = g.map(plt.scatter)

png

#设置对角线与其他方式
g = sns.PairGrid(iris, hue="species")
g = g.map_diag(plt.hist)
g = g.map_offdiag(plt.scatter)
g = g.add_legend()


png

5.4.5 JointGrid
  • 绘制双变量与边际单变量图表
  • g = sns.JointGrid(x, y, data=None, height=6, ratio=5, space=0.2, dropna=True, xlim=None, ylim=None,size=None)
  • g.plot(joint_func, marginal_func, annot_func=None) #绘制联合图表与边缘图表
  • g.plot_joint(func, **kwargs) #绘制联合图表
  • g.plot_marginals(func, **kwargs) #绘制边缘图表绘制边缘图表
g = sns.JointGrid(x="total_bill", y="tip", data=tips)
#绘制回归图与直方图
g.plot(sns.regplot, sns.histplot)
<seaborn.axisgrid.JointGrid at 0x201dcd910d0>


png

5.4.6 joinplot
  • 绘制变量的双变量及单变量图
  • g = sns.jointplot(x, y, data=None,kind='scatter',stat_func=None,color=None,...)
tips = sns.load_dataset("tips")
g = sns.jointplot(x="total_bill", y="tip", data=tips)


png

g = sns.jointplot(x="total_bill", y="tip", data=tips, kind="reg")


png

sns.jointplot(x="total_bill", y="tip", data=tips, kind="hex")
<seaborn.axisgrid.JointGrid at 0x1c6efd7a6d0>


png

iris = sns.load_dataset("iris")
g = sns.jointplot(x="sepal_width", y="petal_length", data=iris,kind="kde", space=0, color="g")


png

g = sns.jointplot(x="sepal_length", y="sepal_width", data=iris, color="k")
g.plot_joint(sns.kdeplot, zorder=0, n_levels=6)
<seaborn.axisgrid.JointGrid at 0x1c6efd79f50>


png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

住在天上的云

如果您喜欢我的文章,欢迎打赏哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值