Есть грязный способ сделать это: создать круг из уравнения, а затем построить его. Я уверен, что есть более сложные решения, но я еще не мог понять это. Это путем изменения данных sns.JointGrid
.
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
sns.set(style="ticks")
R = 8 # radius
d = np.linspace(0,2*np.pi, 400) # some data to draw circle
def circle(d, r):
# x and y from the equation of a circle
return r*np.cos(d), r*np.sin(d)
rs = np.random.RandomState(11)
x = rs.gamma(2, size=1000)
y = -.5 * x + rs.normal(size=1000)
#graph your data
graph = sns.jointplot(x, y, kind="hex", color="#4CB391")
# creating the circle
a, b = circle(d, R)
#graphing it
graph.x = a
graph.y = b
graph.plot_joint(plt.plot)
plt.show()