I want to be able to draw a line of my specification across a plot generated in seaborn. The plot I chose was JointGrid, but any scatterplot will do. I suspect that seaborn ma
It appears that you have imported matplotlib.pyplot
as plt
to obtain plt.scatter
in your code. You can just use the matplotlib functions to plot the line:
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)
grid.plot_joint(plt.scatter, color="g")
plt.plot([0, 4], [1.5, 0], linewidth=2)
By creating a JointGrid
in seaborn, you have created three axes, the main ax_joint
, and the two marginal axes.
To plot something else on the joint axes, we can access the joint grid using grid.ax_joint
, and then create plot objects on there as you would with any other matplotlib
Axes
object.
For example:
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)
As an aside, you can also access the marginal axes of a JointGrid
in a similar way:
grid.ax_marg_x.plot(...)
grid.ax_marg_y.plot(...)