matplotlib中plot,python matplotlib 图例

  matplotlib中plot,python matplotlib 图例

  联合分布图是查看两个或多个变量之间成对关系的一种可视化形式,常用于数据分析。一张好看的联合分布图,可以让我们的数据分析更加直观,让大家眼前一亮。

  然后,本文将使用seaborn绘制联合分布图。Seaborn是一个基于matplotlib的Python数据可视化模块。有了它,我们可以通过简单的操作画出各种各样的动图。

  首先,介绍所需的模块。

  将panda导入为PD将seaborn导入为SNS接下来,导入存储绘制联合分布图所需数据的文件。因为我将数据存储在一个. csv文件中,所以我使用pd.read_csv来导入数据。我的数据如下图所示。csv文件,有107行,包括106行样本加上1个行和列标题;和10列。让我们只看前几行:

  导入数据的代码如下:

  data _ path= G:/black _ carbon _ paper/97 _ BC 2020 12 30/00 _ Original/all data 5 factor . CSV column _ names=[ FID , ID , X , Y , BC , Temp , Slope , RoDen , POI ,Gaia] my _ data=pd。read _ csv (data_path,names=column_names,header=0),其中data_path是的存储位置和文件名。csv文件,而column_names是我希望导入的数据在Python中显示的名称(为什么在原始数据有列标题的情况下还要再次设置这个column _ names?This article Header=0表示。csv文件(一般就是我们的第一行)是列头;如果您的初始数据没有列标题,即第一行是数据本身,那么您需要设置header=None。

  执行上面的代码,我们将打印导入的数据,看看它在Python中是什么样子。

  打印(我的数据)

  大家可以看到,导入Python后的第七列数据,原来的名字是“Slope_1”,但是在设置了我们自己命名的column_names后,就把原来数据的列标题改成了我们自己设置的标题“Slope”。如果我们不设置column_names,导入的数据如下所示:

  可以看到,如果我们不使用column_names,数据导入Python后列名就是原来的“Slope_1”。

  我们继续。其实用seaborn绘制联合分布图很简单(这是seaborn对matplotlib的改进,让我们在绘制复杂的地图时不需要太多麻烦),只用下面两个代码:

  Joint _ columns=[bc , temp , slope , roden , poi , Gaia ]SNS . pailplot(my _ data[joint_columns],kind= reg ,diag _ kind= kde )如你所见,因为我的数据有数字列“ID”,而且可以确定数字不需要参与抽奖,那么我们就不把它放在joint _ column中。

  第二句是drawing ~kind表示联合分布图中非对角图的类型。你可以选择 reg 和 scatter , kde 和 hist 。‘reg’表示给图形添加一条拟合直线,‘scatter’表示不添加这条直线,‘kde’是等高线的形式,‘hist’是类似于光栅地图的形式;Diag_kind表示联合分布图中对角线图的类型, hist 和 kde 可选。“hist”代表直方图,“kde”代表直方图曲线。

  以kind和diag_kind分别选择‘reg’和‘kde’为例。绘图结果如下:

  以kind和diag_kind分别选择 scatter 和 hist 为例,绘制结果如下:

  个人觉得第一张图比较好看~

  但由于图中涉及的变量较多,图中字体有点难以辨认。您可以在代码sns.pairplot的顶部添加代码:

  Sns.set(font_scale=1.2),其中font_scale是字体的大小。后面的数字越大,字体越大。以font_scale=1.2为例,我们来看看效果:

  这让字体变大了~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: