python可视化分析绘制带趋势线的散点图和边缘直方图


Posted in Python onJune 25, 2022

一、绘制带趋势线的散点图

实现功能:

在散点图上添加趋势线(线性拟合线)反映两个变量是正相关、负相关或者无相关关系。

实现代码:

import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings(action='once')
plt.style.use('seaborn-whitegrid')
sns.set_style("whitegrid")
print(mpl.__version__)
print(sns.__version__)
def draw_scatter(file):
    # Import Data
    df = pd.read_csv(file)
    df_select = df.loc[df.cyl.isin([4, 8]), :]

    # Plot
    gridobj = sns.lmplot(
        x="displ",
        y="hwy",
        hue="cyl",
        data=df_select,
        height=7,
        aspect=1.6,
        palette='Set1',
        scatter_kws=dict(s=60, linewidths=.7, edgecolors='black'))
    # Decorations
    sns.set(style="whitegrid", font_scale=1.5)
    gridobj.set(xlim=(0.5, 7.5), ylim=(10, 50))
    gridobj.fig.set_size_inches(10, 6)
    plt.tight_layout()
    plt.title("Scatterplot with line of best fit grouped by number of cylinders")
    plt.show()
draw_scatter("F:\数据杂坛\datasets\mpg_ggplot2.csv")

实现效果:

python可视化分析绘制带趋势线的散点图和边缘直方图

在散点图上添加趋势线(线性拟合线)反映两个变量是正相关、负相关或者无相关关系。红蓝两组数据分别绘制出最佳的线性拟合线。

二、绘制边缘直方图

实现功能:

python绘制边缘直方图,用于展示X和Y之间的关系、及X和Y的单变量分布情况,常用于数据探索分析。

实现代码:

import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings(action='once')
plt.style.use('seaborn-whitegrid')
sns.set_style("whitegrid")
print(mpl.__version__)
print(sns.__version__)
def draw_Marginal_Histogram(file):
    # Import Data
    df = pd.read_csv(file)

    # Create Fig and gridspec
    fig = plt.figure(figsize=(10, 6), dpi=100)
    grid = plt.GridSpec(4, 4, hspace=0.5, wspace=0.2)
    # Define the axes
    ax_main = fig.add_subplot(grid[:-1, :-1])
    ax_right = fig.add_subplot(grid[:-1, -1], xticklabels=[], yticklabels=[])
    ax_bottom = fig.add_subplot(grid[-1, 0:-1], xticklabels=[], yticklabels=[])
    # Scatterplot on main ax
    ax_main.scatter('displ',
                    'hwy',
                    s=df.cty * 4,
                    c=df.manufacturer.astype('category').cat.codes,
                    alpha=.9,
                    data=df,
                    cmap="Set1",
                    edgecolors='gray',
                    linewidths=.5)
    # histogram on the right
    ax_bottom.hist(df.displ,
                   40,
                   histtype='stepfilled',
                   orientation='vertical',
                   color='#098154')
    ax_bottom.invert_yaxis()
    # histogram in the bottom
    ax_right.hist(df.hwy,
                  40,
                  histtype='stepfilled',
                  orientation='horizontal',
                  color='#098154')
    # Decorations
    ax_main.set(title='Scatterplot with Histograms \n displ vs hwy',
                xlabel='displ',
                ylabel='hwy')
    ax_main.title.set_fontsize(10)
    for item in ([ax_main.xaxis.label, ax_main.yaxis.label] +
                 ax_main.get_xticklabels() + ax_main.get_yticklabels()):
        item.set_fontsize(10)

    xlabels = ax_main.get_xticks().tolist()
    ax_main.set_xticklabels(xlabels)
    plt.show()
draw_Marginal_Histogram("F:\数据杂坛\datasets\mpg_ggplot2.csv")

实现效果:

python可视化分析绘制带趋势线的散点图和边缘直方图

到此这篇关于python可视化分析绘制带趋势线的散点图和边缘直方图的文章就介绍到这了,更多相关python绘制内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python version 2.7 required, which was not found in the registry
Aug 26 Python
python遍历数组的方法小结
Apr 30 Python
基于python实现的抓取腾讯视频所有电影的爬虫
Apr 22 Python
python中int与str互转方法
Jul 02 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
使用Python函数进行模块化的实现
Nov 15 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
Python简单实现区域生长方式
Jan 16 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
Apr 25 Python
详解用Python爬虫获取百度企业信用中企业基本信息
Jul 02 Python
python3 os进行嵌套操作的实例讲解
Nov 19 Python
Python如何把不同类型数据的json序列化
Apr 30 Python
基于Python编写一个监控CPU的应用系统
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
You might like
php在字符串中查找另一个字符串
2008/11/19 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
利用JQuery动画制作滑动菜单项效果实现步骤及代码
2013/02/07 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
ES6新特性三: Generator(生成器)函数详解
2017/04/21 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
浅谈Vuex的状态管理(全家桶)
2017/11/04 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
跟老齐学Python之集合的关系
2014/09/24 Python
Python构造函数及解构函数介绍
2015/02/26 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
Python微信公众号开发平台
2018/01/25 Python
Python实现Kmeans聚类算法
2020/06/10 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
50行Python代码获取高考志愿信息的实现方法
2019/07/23 Python
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
医学类导师推荐信范文
2013/11/19 职场文书
化工操作工岗位职责
2014/04/29 职场文书
教师暑期培训感言
2014/08/15 职场文书
承诺书样本
2014/08/30 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书