使用seaborn,我如何在我的散点图中画出我选择的一行?

时间:2016-03-22 05:20:41

标签: python matplotlib seaborn

我希望能够在seaborn中生成的情节中画出我的规格线。我选择的情节是JointGrid,但任何散点图都可以。我怀疑seaborn可能不容易做到这一点吗?

以下是绘制数据的代码(来自花瓣长度和花瓣宽度的Iris数据集的数据帧):

import seaborn as sns
iris = sns.load_dataset("iris")    
grid = sns.JointGrid(iris.petal_length, iris.petal_width, space=0, size=6, ratio=50)
    grid.plot_joint(plt.scatter, color="g")

enter image description here

如果从虹膜数据集中获取此图形,我如何在其中绘制我选择的线条?例如,负斜率线可能会将簇分开,正斜率可能会跨越它们。

2 个答案:

答案 0 :(得分:15)

您似乎已将<div id="secA" class="section"> Hello it's secA <div> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div> </div> <div id="secB" class="section"> Hello it's secB <div> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div> </div> <div id="secC" class="section"> Hello it's secC <div> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div> </div> 导入.section { background-color: red; } .active { background-color: yellow; } 以获取代码中的matplotlib.pyplot。您可以使用matplotlib函数绘制直线:

plt

enter image description here

答案 1 :(得分:4)

通过在seaborn中创建JointGrid,您创建了三个轴,即主ax_joint和两个边缘轴。

要在关节轴上绘制其他内容,我们可以使用grid.ax_joint访问关节网格,然后像使用任何其他matplotlib Axes对象一样在其上创建绘图对象。

例如:

import seaborn as sns
import matplotlib.pyplot as plt

iris = sns.load_dataset("iris")    
grid = sns.JointGrid(iris.petal_length, iris.petal_width, space=0, size=6, ratio=50)

# Create your scatter plot
grid.plot_joint(plt.scatter, color="g")

# Create your line plot.
grid.ax_joint.plot([0,4], [1.5,0], 'b-', linewidth = 2)

顺便说一下,你也可以用类似的方式访问JointGrid的边缘轴:

grid.ax_marg_x.plot(...)
grid.ax_marg_y.plot(...)