数据可视化,将数据以一种直观的方式展现出来。不同图表的功能作用也不同。
这篇主要是介绍matplotlib和seaborn的简单使用。matplotlib一般是用来帮助做数据分析的,可以用python做数据处理,然后导出,用teablue做数据的可视化。
1、导入相关工具包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('darkgrid')
sns.set_context('paper')
import warnings
warnings.filterwarnings('ignore')
print('导入成功!')
2、创建数据
df = pd.DataFrame(np.random.randn(1000, 4), index=pd.date_range('1/1/2000', periods=1000), columns=list('ABCD'))
df = df.cumsum()
df.head(5)
3、折线图
df.plot(kind='line', style='--', alpha=0.4,
use_indes=True, rot=45, grid=True,
figsize=(12,8), title='test', legend = True,
subplots = False, cmap = 'Greens'))
4、散点图、气泡图
plt.figure(figsize = (12,8))
plt.scatter(df['A'],df['B'],marker='.',
s = df['C']*10,
cmap = 'Reds',
c = df['D'],
alpha = 0.8,)
# s:散点的大小
# c:散点的颜色
# vmin,vmax:亮度设置,标量
# cmap:colormap
5、箱型图
df.boxplot(figsize = (12,8))
# by:按照列分组做箱型图
df2 = pd.DataFrame(np.random.rand(10,2), columns=['Col1', 'Col2'] )
df2['X'] = pd.Series(['A','A','A','A','A','B','B','B','B','B'])
df2['Y'] = pd.Series(['A','B','A','B','A','B','A','B','A','B'])
print(df2.head())
df2.boxplot(by = 'X', figsize=(12,8))
6、小提琴图
tips = sns.load_dataset("tips")
print(tips.head())
plt.figure(figsize=(12,8))
sns.violinplot(x="day", y="total_bill", data=tips,
hue = 'smoker',split = True, # 是否吸烟切分
linewidth = 2, # 线宽
width = 0.8, # 箱之间的间隔比例
palette = 'Blues_r', # 设置调色板
order = ['Thur','Fri','Sat','Sun'], # 筛选类别
scale = 'count', # 测度小提琴图的宽度:area-面积相同,count-按照样本数量决定宽度,width-宽度一样
gridsize = 50, # 设置小提琴图边线的平滑度,越高越平滑
inner = 'box', # 设置内部显示类型 → “box”, “quartile”, “point”, “stick”, None
)
7、两个样本数据分布图
#两个样本数据密度分布图
plt.figure(figsize=(12,8))
sns.kdeplot(df['A'],df['B'],
cbar = True, # 是否显示颜色图例
shade = True, # 是否填充
cmap = 'Reds', # 设置调色盘
shade_lowest=False, # 最外围颜色是否显示
n_levels = 20 # 曲线个数(如果非常多,则会越平滑)
)
# 两个维度数据生成曲线密度图,以颜色作为密度衰减显示
sns.rugplot(df['A'], color="g", axis='x',alpha = 0.5)
sns.rugplot(df['B'], color="r", axis='y',alpha = 0.5)
# 注意设置x,y轴
#两个样本数据散点分布图
plt.figure(figsize=(12,8))
sns.jointplot(df['A'],df['B'], # 设置xy轴,显示columns名称
data=df, # 设置数据
color = 'k', # 设置颜色
s = 50, edgecolor="w",linewidth=1, # 设置散点大小、边缘线颜色及宽度(只针对scatter)
kind = 'scatter', # 设置类型:“scatter”、“reg”、“resid”、“kde”、“hex”
space = 0.2, # 设置散点图和布局图的间距
size = 8, # 图表大小(自动调整为正方形)
ratio = 5, # 散点图与布局图高度比,整型
marginal_kws=dict(bins=15, rug=True) # 设置柱状图箱数,是否设置rug
)