gpt4 book ai didi

python - 改变子图中的 seaborn 风格

转载 作者:行者123 更新时间:2023-12-03 19:37:11 24 4
gpt4 key购买 nike

我正在尝试更改同一图中的两个图的样式:

import numpy as np
from numpy.random import randn
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(15,6))
data = randn(7500);

sns.set_style("whitegrid");
ax1.hist(data, bins=8);

sns.set_style("darkgrid");
ax2.hist(data, bins=8);

这不起作用,两个图最终都有 "darkgrid"背景。我也尝试修改 axes_style()没有成功。

最佳答案

matplotlib Axes 的工作方式是样式参数在创建时成为 Axes 对象的属性,而不是在它上绘制某些东西时。因此,虽然不可能使用 plt.subplots 制作具有不同子图样式的图形,您可以使用其中一种独立创建轴的方法来完成此操作:

fig = plt.figure()
with sns.axes_style("whitegrid"):
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)

另请注意,我使用上下文管理器来设置第一个轴的样式,因此第二个轴将具有默认样式。可以使用 sns.set_style每次前 add_subplot命令就像你在问题中所做的那样,但使​​用上下文管理器来创建非默认绘图感觉有点像 Pythonic。

关于python - 改变子图中的 seaborn 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29235206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com