关系(五)利用python绘制连接散点图

关系(五)利用python绘制连接散点图

连接散点图(Connected Scatterplot)简介

1

连接散点图(点线图)是折线图的一种,与散点图类似。但添加了按数据点出现顺序的连线,以此来表示两个变量的顺序关系。因此连接散点图既能分析相关性,也可分析趋势性。

快速绘制

  1. 基于seaborn

    import seaborn as sns
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    np.random.seed(0)
    
    # 自定义数据
    df = pd.DataFrame({
          'x': range(1,10),
          'y': np.random.randn(9)*80+range(1,10)
      })
        
    # 利用lineplot快速绘制连接散点图
    sns.lineplot(x='x',
                 y='y',
                 data=df,
                 marker='o'
                )
    
    plt.show()
    

    2

  2. 基于matplotlib

    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    np.random.seed(0)
    
    # 自定义数据
    df = pd.DataFrame({
          'x': range(1,10),
          'y': np.random.randn(9)*80+range(1,10)
      })
    
    # 利用plot快速绘制连接散点图
    plt.plot(df['x'], df['y'], linestyle='-', marker='o')
    
    plt.show()
    

    3

    定制多样化的连接散点图

    自定义连接散点图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。

    通过seaborn绘制多样化的连接散点图

    seaborn主要利用lineplot绘制连接散点图,可以通过seaborn.lineplot了解更多用法

    import seaborn as sns
    import matplotlib.pyplot as plt
    
    # 自定义数据
    x = [1, 2, 3, 4, 5]
    y = [5, 3, 7, 4, 8]
    
    # 初始化布局
    plt.figure(figsize=(6, 4))
    
    # 带圆圈标记的实线
    sns.lineplot(x=x, y=y, linestyle='-', marker='o', markersize=8, label='Solid Line', color='blue') 
    
    # 带方形标记的虚线
    sns.lineplot(x=x, y=[i + 1 for i in y], linestyle='--', marker='s', markersize=8, label='Dashed Line', color='green') 
    
    # 带有向上三角形标记的点划线
    sns.lineplot(x=x, y=[i + 2 for i in y], linestyle='-.', marker='^', markersize=20, label='Dash-dot Line', color='purple') 
    
    plt.legend(loc='upper left')
    plt.show()
    

    4

通过matplotlib绘制多样化的连接散点图

matplotlib主要利用plot绘制连接散点图,可以通过matplotlib.pyplot.plot了解更多用法

  1. 自定义连接散点图

    import matplotlib.pyplot as plt
    
    # 自定义数据
    x = [1, 2, 3, 4, 5]
    y = [5, 3, 7, 4, 8]
    
    # 初始化布局
    plt.figure(figsize=(6, 4))
    
    # 带圆圈标记的实线
    plt.plot(x, y, linestyle="-", marker="o", markersize=8, label='Solid Line', color='blue')
    
    # 带方形标记的虚线
    plt.plot(x, [i + 1 for i in y], linestyle='--', marker='s', markersize=8, label='Dashed Line', color='green') 
    
    # 带有向上三角形标记的点划线
    plt.plot(x, [i + 2 for i in y], linestyle='-.', marker='^', markersize=20, label='Dash-dot Line', color='purple') 
    
    plt.legend(loc='upper left')
    plt.show()
    

    5

  2. 绘制多个变量的演变过程

    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 导入数据
    df = pd.read_csv("https://raw.githubusercontent.com/holtzy/data_to_viz/master/Example_dataset/5_OneCatSevNumOrdered.csv")
    
    # 数据清洗
    df = df.loc[(df.name=="Ashley") | (df.name=="Amanda")]
    df = df.loc[(df.sex=="F") & (df.year>1970)]
    df = pd.pivot_table(df, values='n', index=['year'], columns=['name'])
    
    df.head()
    

    6

    # 初始化布局
    plt.figure(figsize=(10, 10))
    
    # 连接散点图
    plt.plot(df.Amanda, df.Ashley, '-', marker='o')
    
    # 为每个点添加年份(避免过度堆积,每隔三个点添加年份)
    for line in range(0, df.shape[0], 3):
         plt.annotate(
              df.index[line], 
              (df.Amanda.iloc[line], df.Ashley.iloc[line]+300 ) ,
              va='bottom',
              ha='center'
         )
            
    # 添加轴标签
    plt.xlabel('Amanda')
    plt.ylabel('Ashley')
    
    
    plt.show()
    

    可以看到由1971年到2013年,Amanda和Ashley名字的人数先增多后下降

    7

总结

以上通过seaborn的lineplot和matplotlib的plot快速绘制连接散点图,并通过修改参数或者辅以其他绘图知识自定义各种各样的连接散点图来适应相关使用场景。

共勉~

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值