Seaborn.set_theme() 方法
Seaborn.set_theme() 方法用于设置控制绘图的一般样式的参数。 换句话说,此方法直观地设置了 matplotlib 和 seaborn 图的所有方面。
此函数执行的主题分为多组参数值,同时使用 matplotlib rcParams 系统更改所有图的所有默认值。
语法
以下是 set_theme() 方法的语法 −
seaborn.set_theme(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=True, rc=None)
参数
此方法的参数将在下面讨论。
S.No | 方法和说明 |
---|---|
1 | Context 将字符串或字典作为输入并缩放参数。 |
2 | Style 将字符串或字典作为输入并确定轴样式参数 |
3 | Palette 将字符串或序列作为输入并确定调色板 |
4 | Font 将字符串作为输入并设置绘图的字体系列。 |
5 | Font_scale 以一个浮点值作为输入,分离缩放因子,独立缩放字体元素的大小。 |
6 | Color_codes 取一个布尔值,如果为 true 并且 palette 是 seaborn 调色板,则将速记颜色代码重新映射到他的调色板中的颜色。 |
7 | rc 接受一个字典作为输入并接受值来覆盖上面的值。 |
加载 seaborn 库
让我们在继续开发绘图之前加载 seaborn 库和数据集。 要加载或导入 seaborn 库,可以使用以下代码行。
Import seaborn as sns
加载数据集
在本文中,我们将使用 seaborn 库中内置的 Tips 数据集。 以下命令用于加载数据集。
tips=sns.load_dataset("tips")
下面提到的命令用于查看数据集中的前 5 行。 这使我们能够了解哪些变量可用于绘制图形。
tips.head()
以下是上面这段代码的输出。
index,total_bill,tip,sex,smoker,day,time,size 0,16.99,1.01,Female,No,Sun,Dinner,2 1,10.34,1.66,Male,No,Sun,Dinner,3 2,21.01,3.5,Male,No,Sun,Dinner,3 3,23.68,3.31,Male,No,Sun,Dinner,2 4,24.59,3.61,Female,No,Sun,Dinner,4
既然我们已经加载了数据,我们将继续了解该方法在以下示例中的工作原理。
示例 1
我们在下面的代码中设置主题,然后绘制条形图以查看是否已反映更改。 在下面的代码中,主题的样式设置为"whitegrid",调色板为柔和的,这意味着获得的绘图将具有柔和的颜色。 稍后初始化条形图以查看该图,条形图的 x 和 y 参数是包含一些要绘制的值的列表。
import seaborn as sns import matplotlib.pyplot as plt tips=sns.load_dataset("tips") tips.head() sns.set_theme(style="whitegrid", palette="pastel") sns.barplot(x=["Jan", "Mar", "Aug"], y=[70, 30, 50]) plt.show()
输出
示例 2
我们将在这个例子中使用提示数据集来绘制,而不是像前面的例子那样初始化。 我们将 tips 数据集和列、tip、total_bill 和 sex 传递给要绘制的 barplot 方法,在这种情况下,样式设置为刻度,调色板选择为深色
import seaborn as sns import matplotlib.pyplot as plt tips=sns.load_dataset("tips") tips.head() sns.set_theme(style="ticks", palette="dark") sns.barplot(data=tips,x="tip" ,y="total_bill",hue="sex") plt.show()
输出
得到的输出图如下 −
示例 3
在此示例中,设置了自定义参数并将这些参数传递给 set_theme() 方法,然后绘制图表以查看对主题所做的更改。
自定义参数在字典中用键值对初始化,如下所示。
import seaborn as sns import matplotlib.pyplot as plt tips=sns.load_dataset("tips") tips.head() custom_params = {"axes.spines.right": False, "axes.spines.top": False,"axes.spines.left":False} sns.set_theme(style="ticks", palette="light:#5A9",rc=custom_params,color_codes=True) sns.histplot(x=["Jan", "Mar", "Aug"], y=[70, 30, 50]) plt.show()
输出
得到的图如下 −