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使用rsa加密算法模块模拟新浪微博登录
Jan 22 Python
Python对象的深拷贝和浅拷贝详解
Aug 25 Python
python中的lambda表达式用法详解
Jun 22 Python
Python分支结构(switch)操作简介
Jan 17 Python
python实现简单淘宝秒杀功能
May 03 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
numpy concatenate数组拼接方法示例介绍
May 27 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
python3 pillow模块实现简单验证码
Oct 31 Python
python装饰器的特性原理详解
Dec 25 Python
Python Tornado核心及相关原理详解
Jun 24 Python
python 对图片进行简单的处理
Jun 23 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简单获取文件扩展名的方法
2015/03/24 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
package.json文件配置详解
2017/06/15 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
vue发送ajax请求详解
2018/10/09 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
2019/09/15 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Python多线程原理与用法详解
2018/08/20 Python
python可视化实现代码
2019/01/15 Python
把pandas转换int型为str型的方法
2019/01/29 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
应届生人事助理求职信
2013/11/09 职场文书
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
平安家庭事迹材料
2014/12/20 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书