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的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
Python基于百度AI的文字识别的示例
Apr 21 Python
Python列表推导式与生成器用法分析
Aug 02 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
python 调用有道api接口的方法
Jan 03 Python
python禁用键鼠与提权代码实例
Aug 16 Python
解决Python3下map函数的显示问题
Dec 04 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
Python3运算符常见用法分析
Feb 14 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
Oct 22 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使用者状态管理功能的应用
2006/10/09 PHP
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
详解原生JS回到顶部
2019/03/25 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python异步任务队列示例
2014/04/01 Python
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
python让列表倒序输出的实例
2018/06/25 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
Python urllib3软件包的使用说明
2020/11/18 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
军校大学生个人的自我评价
2014/02/17 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
校园安全标语
2014/06/07 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android