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中input和raw_input的一点区别
Oct 21 Python
Python解惑之整数比较详解
Apr 24 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
python 寻找离散序列极值点的方法
Jul 10 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
Python的pygame安装教程详解
Feb 10 Python
Python Dataframe常见索引方式详解
May 27 Python
用python-webdriver实现自动填表的示例代码
Jan 13 Python
python实现学生通讯录管理系统
Feb 25 Python
基于Python编写一个监控CPU的应用系统
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
You might like
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
php的正则处理函数总结分析
2008/06/20 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
php include和require的区别深入解析
2013/06/17 PHP
php删除指定目录的方法
2015/04/03 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
javascript 面向对象思想 附源码
2009/07/07 Javascript
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
js使用递归解析xml
2014/12/12 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
python实现的防DDoS脚本
2011/02/08 Python
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
Python迭代器和生成器介绍
2015/03/06 Python
Django发送html邮件的方法
2015/05/26 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
北京奥运会主题口号
2014/06/13 职场文书
供电工程专业求职信
2014/08/09 职场文书
APP界面设计技巧和注意事项
2022/04/29 杂记