flu*_*coe 4 python line seaborn
我可以使用 绘制两个变量的联合分布jointplot。但是,我找不到在两个维度上添加显示特定值的任意行的方法。
例如,以下代码可以很好地显示联合分布和边缘分布
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(color_codes=True)
tips = sns.load_dataset("iris")
plot = sns.jointplot(x="sepal_length", y="sepal_width", data=tips,
kind="kde")
Run Code Online (Sandbox Code Playgroud)
但是,我找不到以预先指定的值包含特定垂直线和水平线的方法。例如,包括
plt.plot([6, 1.5], [6, 5], color="skyblue", lw=5, linestyle='solid', label="_not in legend")
Run Code Online (Sandbox Code Playgroud)
在其中一个边缘上生成一条线,但在jointplot. 有没有一种方法可以添加,例如,在 sepal_length 和 sepal_width 的特定值处添加垂直和水平线?(例如,垂直线在 6 处,水平线在 3 处)而且,更一般地说,是否可以根据数据的特定统计来制作这些线?(平均值,不同变量的中位数)。
谢谢,
bal*_*day 11
您可以使用 ax_join 修改关节图的主轴。通过它,您可以使用标准 matplotlib.pyplot 命令,例如 axvline 和 axhline:
import seaborn as sns
sns.set(color_codes=True)
tips = sns.load_dataset("iris")
plot = sns.jointplot(x="sepal_length",y="sepal_width",data=tips,kind="kde")
plot.ax_joint.axvline(x=6)
plot.ax_joint.axhline(y=3)
plot.ax_joint.set_xlim(4,8)
plot.ax_joint.set_ylim(2,4.5)
Run Code Online (Sandbox Code Playgroud)
事实上,您还可以绘制一条通用线,而不仅仅是一个常数:
plot.ax_joint.plot([4,8], [2,5], 'b-', linewidth = 2)
Run Code Online (Sandbox Code Playgroud)
对于使用 stats 的常量线,您可以使用 pandas 数据框属性:
plot.ax_joint.axvline(x=tips.sepal_length.median(),linestyle='--')
plot.ax_joint.axhline(y=tips.sepal_width.mean(),linestyle='--')
Run Code Online (Sandbox Code Playgroud)
您还可以使用 marg_x 和 marg_y 向边缘分布添加线:
plot.ax_marg_x.axvline(x=6)
plot.ax_marg_y.axhline(y=3)
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
| 归档时间: |
|
| 查看次数: |
3237 次 |
| 最近记录: |