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

目录

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

实现功能:

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

实现代码:

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可视化分析绘制带趋势线的散点图和边缘直方图

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容