我想创建一个使用标准色图sns.jointplot
的{{1}}。对于横向kde估计的密度,该标准颜色循环的输出太轻。我更喜欢使用"Greens"
色彩图时颜色较深的颜色。
是否有一种简单的方法可以让它们变暗?
"BuGn_r"
见下面的输出:
答案 0 :(得分:1)
使用kdeplot
创建线条和阴影区域后,可以更改颜色。可以从g3
,g3.ax_marg_x
和g3.ax_marg_y
访问边缘轴。
您可以使用以下颜色更改线条的颜色:
g3.ax_marg_x.lines[0].set_color()
阴影区域的颜色为:
g3.ax_marg_x.collections[0].set_facecolor()
当然,您可以将它们设置为任何有效的matplotlib
颜色。或者,为了获得您在第一个图中使用的确切颜色,您还可以在get_color
边距上使用get_facecolor
和g2
。
您可以在下面的脚本中看到所有操作:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pn
import seaborn as sns
iris = sns.load_dataset("iris")
with sns.axes_style("white"):
sns.set_palette("BuGn_r")
g2 = sns.jointplot("sepal_width", "petal_length", data=iris,
kind="kde", space=0)
# Find out the face and line colours that BuGn_r uses
facecolor = g2.ax_marg_x.collections[0].get_facecolor()
linecolor = g2.ax_marg_x.lines[0].get_color()
print facecolor
# [[ 0.0177624 0.4426759 0.18523645 0.25 ]]
print linecolor
# (0.017762399946942051, 0.44267590116052069, 0.18523645330877866)
with sns.axes_style("white"):
sns.set_palette("Greens")
g3 = sns.jointplot("sepal_width", "petal_length", data=iris,
kind="kde", space=0)
# Change the facecolor of the shaded region under the line
g3.ax_marg_x.collections[0].set_facecolor(facecolor)
g3.ax_marg_y.collections[0].set_facecolor(facecolor)
# And change the line colour.
g3.ax_marg_x.lines[0].set_color(linecolor)
g3.ax_marg_y.lines[0].set_color(linecolor)
plt.show()
答案 1 :(得分:0)
使用color=
的{{1}}参数。