一、绘制带趋势线的散点图
实现功能:
在散点图上添加趋势线(线性拟合线)反映两个变量是正相关、负相关或者无相关关系。
实现代码:
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:数据杂坛datasetsmpg_ggplot2.csv")
实现效果:
在散点图上添加趋势线(线性拟合线)反映两个变量是正相关、负相关或者无相关关系。红蓝两组数据分别绘制出最佳的线性拟合线。
二、绘制边缘直方图
实现功能:
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:数据杂坛datasetsmpg_ggplot2.csv")
实现效果:
到此这篇关于python可视化分析绘制带趋势线的散点图和边缘直方图的文章就介绍到这了,更多相关python绘制内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
需要了解更多python教程分享python可视化分析绘制带趋势线的散点图和边缘直方图,都可以关注python教程分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/pythontutorial/1116788.html