如何将默认的 matplotlib 绘图更改为 seaborn 绘图?
将默认的matplotlib绘图设置更改为Seaborn涉及修改默认绘图参数以匹配Seaborn提供的样式和美学。这可以通过调整各种元素来实现,例如颜色调色板、网格线、字体样式和绘图主题。以下是如何详细更改默认matplotlib绘图到Seaborn绘图的分步指南。
导入必要的库
首先,导入所需的库,例如用于创建绘图的'matplotlib.pyplot'和用于应用Seaborn样式和美学的'seaborn'。以下是导入库的代码。
import matplotlib.pyplot as plt import seaborn as sns
应用Seaborn样式
要将默认绘图设置更改为Seaborn,请使用'set()'函数应用Seaborn样式。这将修改'matplotlib'的默认参数以匹配Seaborn样式。
sns.set()
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
自定义颜色调色板
Seaborn提供了多种颜色调色板,可用于自定义绘图的颜色方案。我们可以从各种内置调色板中选择,或者创建自己的调色板,并且要设置特定的颜色调色板,我们必须使用'set_palette()'函数。
sns.set_palette("color_palette_name")
将'"color_palette_name"'替换为所需的调色板名称,例如'"deep"'、'"pastel"'、'"dark"'或任何其他可用的调色板。
自定义网格线和轴
Seaborn提供了自定义网格线和轴的选项。要删除网格线,请使用'despine()'函数。默认情况下,它会删除顶部和右侧的脊柱。要删除所有脊柱,请使用以下代码
sns.despine()
要自定义轴,我们可以修改诸如标签、刻度标记及其外观之类的属性。例如,要为x轴和y轴设置自定义标签,请分别使用'xlabel()'和'ylabel()'函数。
plt.xlabel("X-axis label") plt.ylabel("Y-axis label")
我们可以进一步使用'xticks()'和'yticks()'函数自定义刻度标记及其外观。
plt.xticks([0, 1, 2, 3, 4]) plt.yticks([0, 1, 2, 3, 4])
自定义字体和文本
Seaborn允许我们自定义绘图的字体和文本属性。要更改绘图标题、标签和注释的字体样式和大小,请使用'title()'、'xlabel()'、'ylabel()'和'text()'函数。
plt.title("Plot Title", fontweight="bold", fontsize=12) plt.xlabel("X-axis Label", fontsize=10) plt.ylabel("Y-axis Label", fontsize=10) plt.text(x, y, "Annotation Text", fontsize=8)
将'fontweight'、'fontsize'和'fontsize'参数中的值替换为我们所需的值。
自定义绘图主题
Seaborn提供了不同的绘图主题,可以应用于更改绘图的整体外观。您可以从'"darkgrid"'、'"whitegrid"'、'"dark"'、'"white"'或'"ticks"'等选项中选择。要应用主题,请使用'set_style()'函数。
sns.set_style("theme_name")
将'"theme_name"'替换为所需的主题名称。
创建并显示绘图
在将绘图设置自定义为Seaborn样式后,使用'matplotlib'函数(例如'plot()'、'scatter()'或'bar()')创建我们的绘图。一旦我们的绘图准备就绪,请使用'plt.show()'显示绘图。
plt.plot(x, y) plt.show()
通过结合上面提到的所有步骤,我们可以将默认的matplotlib绘图更改为Seaborn绘图,应用Seaborn的样式、颜色调色板、网格线、字体样式和绘图主题。
示例
import matplotlib.pyplot as plt import seaborn as sns x = [0, 1, 2, 3, 4] y = [0, 1, 2, 3, 4] sns.set() sns.set_palette("deep") sns.despine() plt.xticks([0, 1, 2, 3, 4]) plt.yticks([0, 1, 2, 3, 4]) plt.title("Plot Title", fontweight="bold", fontsize=12) plt.xlabel("X-axis Label", fontsize=10) plt.ylabel("Y-axis Label", fontsize=10) sns.set_style("darkgrid") plt.plot(x, y) plt.show()