我希望能够在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")
如果从虹膜数据集中获取此图形,我如何在其中绘制我选择的线条?例如,负斜率线可能会将簇分开,正斜率可能会跨越它们。
答案 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
答案 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(...)