数据分析-05 数据可视化

数据可视化,将数据以一种直观的方式展现出来。不同图表的功能作用也不同。


图表分类图.png -来自大鹏老师数据分析课程

图表分类图.png -来自大鹏老师数据分析课程

图表分类图.png -来自大鹏老师数据分析课程

这篇主要是介绍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)
数据.png

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'))
折线图.png

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
气泡图.png

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))
箱型图.png

分组箱型图.png

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
           )
小提琴图.png

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
              )  
数据分布图.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 资料来源:https://github.com/BrambleXu/pydata-notebook 信息可视化(也...
    林清猫耳阅读 5,442评论 0 3
  • Tips: 本文原文部分代码有不准确的地方,已进行修改; 所有正确的源代码,已整合到 jupyter notebo...
    WoodyWu阅读 7,620评论 2 70
  • 一:这个世间,总有人,想过着你想要的生活,却经历着你未曾经历的苦。 清晨的阳光好美,微风吹佛我的脸颊,当我触碰到那...
    拾叶者阅读 2,507评论 2 6
  • 2018年8月12日养生锻炼汇报:1.食疗:姜栆水 2.抡胳膊700圈 3.心情:较中和 4.总结:赵老师的养生早...
    佑杰宝阅读 975评论 0 0
  • 偶然间看了一个《妻子的浪漫旅行》的视频,里面有我熟悉的应采儿和谢娜,还有另外两个女明星。 四个女人告别老公孩子,一...
    Faye小花园阅读 2,688评论 1 0