Seaborn是一个全面的数据可视化库,用于在Python中绘制统计图。它提供了精美的默认样式和颜色方案,用于制作更有吸引力的统计图。Seaborn建立在matplotlib 库的顶端部分,也与pandas的数据结构紧密结合。
如何改变Seaborn图的图形大小?
第一种方法。改变坐标轴-水平图的大小在这种方法中,通过创建一个高度和宽度不相同的Seaborn散点图来改变图的大小。例如,一个宽度为8,高度为4的Seaborn图。 以下是这个Seaborn图的代码。
代码。
| import pandas as pd 输入seaborn作为sns #创建数据 df = pd.DataFrame({"var1":[25, 12, 15, 14, 19, 23, 25, 29], "var2":[5, 7, 7, 9, 12, 9, 9, 4], "var3":[11, 8, 10, 6, 6, 5, 9, 12]}) #define figure size sns.set(rc={"figure.figsize":(8, 4)})#width=8, height=4 #显示散点图 sns.scatterplot(data=df, x="var1″, y="var2″) |
第二种方法。改变图层平面图的大小
像sns.catplot, sns.jointplot, sns.implot这样的图层图的高度和宽度必须在图表本身中指定。下面是设计一个高度和宽度分别为5和1.5的Seaborn Implot的代码。
代码。
| import pandas as pd import seaborn as sns #创建数据 df = pd.DataFrame({"var1":[25, 12, 15, 14, 19, 23, 25, 29], "var2":[5, 7, 7, 9, 12, 9, 9, 4], "var3":[11, 8, 10, 6, 6, 5, 9, 12]}) #创建lmplot sns.lmplot(data=df, x="var1″, y="var2″, height=5, aspect=1.5) #height=5, width=1.5 times larger than height |
图层和轴层函数之间的区别。
轴级函数在整个层次结构中位于图级函数之下。如sns.deplot( )是一个图层函数,它涵盖了四个轴层函数histplot、kdeplot、ecdfplot和rugplot。Seaborn的每个模块都有一个图层函数,可以创建任何可能的底层轴层函数的图。即使 displot( )可以创建四种类型的图,但使用更具体的轴级函数或图级函数仍有利弊。
| 轴级KDE图 |
| 图层面的KDE情节 |
对象级的Plots。
图层面的函数sns.depsot是用来创建直方图的。期间使用的对象类型是seaborn.axisgrid.FacetGrid。这是显示Seaborn Facet Grid对象的整个结果,它干扰了Matplotlib的API。也可以通过对象直接创建一个情节。直接从对象中创建的情节也为定制化提供了更多的选择。下面是该代码的代码和对象级的情节。
代码。
| fig_obj = sns.FacetGrid(pen, col='species', margin_titles=True, height=6)fig_obj.map(plt.scatter, "bill_depth_mm", "body_mass_g", s=30)fig_obj.set(xlim=(10,23),ylim=(2000,6500))fig_obj.set_axis_labels("Bill Depth (mm)", "Body Mass (g)", fontsize=14) |
对象水平图
使用Matplotlib可以更容易地实现这样的图。可以通过Matplotlib的语法对图进行进一步调整。另外,可以在map( ) 调用中加入更多的关键字参数,或者使用fig_obj.set( ) 函数。像fig.et_axis_labels( )这样的函数也可用于此。
Seaborn对象的灵活性。虽然Seaborn对象在使用上有一定的难度,我们 经常要打开两个或更多的文档页面来获得我们要找的所有参数。然而,这种额外的努力使得数据变量的分面变得容易得多。
Seaborn Facet Grid样本图代码。
| fig = sns.FacetGrid(pen, col="island", hue="species", aspect=.75, height=3.5)fig.map_dataframe(sns.scatterplot, x="bill_depth_mm", y="body_mass_g")fig.set_axis_labels("bill Depths (mm)", "body Mass (g)")fig.add_legend() |
绘图。
使用sns.scatterplot绘制Seaborn面状网格图
在Seaborn Plot上调整字体大小。Seaborn绘图中的字体大小通常都很小。这些可以通过使用set方法和font_scale参数来调整。我们正在使用Matplotlib Pyplot、gcf()和set_size_inches()方法改变Seaborn散点图的大小。下面是代码和字体调整前后的散点图图像。
代码。
| iris_df = sns.load_dataset('iris') fig = plt.gcf() # 改变Seaborn图的大小 fig.set_size_inches(12, 8) # 设置字体比例 sns.set(font_scale=2) sns.scatterplot(x='sepal_length', y='petal_length', data=iris_df) |
调整字体大小前后的Seaborn散点图图像。
| 字体调整前的Seaborn散点图 |
| 字体调整后的Seaborn散点图 |
如何以不同的文件格式保存Seaborn图?
保存Seaborn图是一件非常重要的事情。这可以通过Pyplot的Savefig()方法来完成,它允许我们将Seaborn保存为许多不同的文件格式,如PDF、eps、png、jpeg等。EPS是一种相当方便的文件格式,用EPS保存的文件具有很高的分辨率,在将我们的研究或研究论文提交给科学杂志出版时,是理想的选择。
如何将Seaborn图保存为JPEG格式? 为了处理这个问题,我们使用Pyplot Savefig()方法。由于我们希望我们的Seaborn图为JPEG格式,我们必须在参数中提供字符串 "jpeg"。然后,我们必须添加70dpi(每英寸点数)作为分辨率系数。DPI可以被改变以产生可打印的图像。
下面是代码的形成过程。
| import matplotlib.pyplot as plt import seaborn as sns iris_df = sns.load_dataset('iris') sns.set (style="ticks") g = sns. FacetGrid(iris_df, col="species") g= g。 map(plt.scatter, "petal_length", "petal _width") g.fig.set_fighe ight(6) g.fig.set_ figwidth(10) plt.savefig('our_plot_name.jpg', format='jpeg', dpi=70) |
如何将Seaborn图保存为EPS格式?
它与JPEG格式非常相似。我们需要在代码的最后一行改变绘图名称的扩展名、格式和dpi值。
下面是(EPS)封装的Postscript格式的代码。
输入****matplotlib.pyplot 作为****plt
输入****读取 作为****sns
iris_df = sns.load_dataset('iris'))
sns.set(style="ticks")
g = sns.FacetGrid(iris_df, col="物种")
g = g.map(plt.scatter, "petal_length"****, "花瓣宽度"****)
plt.savefig('our_plot_name.eps'), format='eps,dpi=300)
**如何将Seaborn绘图保存为PNG格式?**我们需要用sns创建一个简单的直方图。distplot来实现。下面是代码中需要的修改,以将Seaborn图保存为(Portable Network Graphics)png格式。我们需要使用plt.savefig功能来实现这一点。
代码和描述。
| sns.distplot(df['mpg'] ) # 保存Seaborn图。 plt.savefig('save_as_a_png.png') |
我们在代码的第二行使用了plt.savefig功能。我们想把我们的Seaborn图保存为PNG格式,所以我们使用了文件扩展名(.png)。png扩展名指导plt.savefig将此文件保存为PNG格式。
如何将Seaborn图保存为高分辨率的PNG?
作为高分辨率PNG的Seaborn图需要添加dpi值300。文件的扩展名也需要是saving-a-high-resolution-seaborn-plot.png。
代码。
| sns.distplot(df['mpg'] ) plt.savefig('saving-a-high-resolution-seaborn-plot.png', dpi=300) |
如何将Seaborn图保存为透明的PNG?
将Seaborn图保存为透明PNG需要改变文件扩展名。这个文件的扩展名将是saving-a-seaborn-plot-as-png-file-transparent.png。
代码。
| # Seaborn保存图。 plt.savefig('saving-a-seaborn-plot-as-png-file-transparent.png', transparent=True) |
Seaborn的用途和应用。
信息化的分布式总结。display( ) Seaborn功能支持几种可视化分布的方法。这些方法包括一些经典技术,如直方图和计算密集型方法,如核密度估计。Seaborn支持稳健但较少使用的过程,如数据的经验累积分布函数的计算和绘制。
提供分类数据绘图的专门图表。S eaborn也有定制的绘图类型,有适当的方向来可视化分类数据。这些专门的绘图不同的层次,以细化的形式表示许多参数。我们还可以绘制一个 "蜂群 "图。蜂群图是一种散点图,它沿分类轴调整各点的位置,使各点在任何位置都不重叠。
下面是两种不同类型的专用图的图片。
| 用于分类数据的Seaborn小提琴图 |
| 用于分类数据的Seaborn蜂群图 |
多变量数据集的综合视图。Seaborn有一些函数可以结合多种类型的图来提供任何数据集的快速信息汇总。jointplot( )函数专注于单一关系,绘制两个变量之间的联合分布和每个变量的边际分布。
下面是这种用于多变量数据集的图的代码和图片。
| 企鹅 = sns.加载数据集("企鹅")Ǟ Ǟ Ǟ.联合图谱(数据=企鹅, x="脚蹼长度_mm", y="账单长度_毫米", 色调="种类") |
用于制作复杂图形的函数和类。这 些Seaborn工具通过将轴级绘图功能与通过将数据集的结构与轴的网格联系起来来控制图形布局的对象结合起来而变得功能化。这两个元素都是公共API的一部分,只需几行代码就可以直接用于创建复杂的图形。
代码。
| g = sns.对子网格(企鹅, 色调="物种", 角=真)g.map_lower(Ǟ Ǟ Ǟ.绘制, 色调=无, 水平=5, 颜色=“.2”)g.map_lower(Ǟ Ǟ Ǟ.散点图, 标记=“+”)g.map_diag(Ǟ Ǟ Ǟ.直方图, 元素="步骤", 线宽=0, kde=真)g.add_legend(框架=真)g.ǞǞǞ.设置为锚点的方框((.61, .6)) |
绘图图像。
有意见的默认值和灵活的定制。
Seaborn能够通过一个函数调用来设计完整的图形。在可能的情况下,Seaborn函数会自动添加内容丰富的轴标签和图例,解释图中的语义映射。偶尔,Seaborn也会根据数据集的特点为其参数选择默认值。
具有相同功能和工具的图的代码和图片。
| sns.relplot(数据=企鹅,x="账单长度_毫米", y="账单深度_mm", 色调="body_mass_g") |
在发布工作之前,我们可能会寻求对图表进行抛光,使其超出默认值的范围。Seaborn定义了多个内置主题,适用于所有的数字及其标准化的函数参数,可以修改每个绘图的语义映射。一旦绘图被创建,其属性可以通过Seaborn API进行修改,并下放到matplotlib层进行细粒度的调整。
The postHow to Change Figure Size for a Seaborn Plot?first appeared onFinxter.