【发布时间】:2017-10-16 03:45:23
【问题描述】:
我有一个 pandas 格式的数据框 (pd.DataFrame),其列 = [z1,z2,Digit],我在 seaborn 中做了一个散点图:
dataframe = dataFrame.apply(pd.to_numeric, errors='coerce')
sns.lmplot("z1", "z2", data=dataframe, hue='Digit', fit_reg=False, size=10)
plt.show()
我想要的是围绕这些点中的每一个绘制一个椭圆。但我似乎无法在同一个图中绘制椭圆。
我知道绘制椭圆的正常方法是:
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
elps = Ellipse((0, 0), 4, 2,edgecolor='b',facecolor='none')
a = plt.subplot(111, aspect='equal')
a.add_artist(elps)
plt.xlim(-4, 4)
plt.ylim(-4, 4)
plt.show()
但是因为我必须执行“a = plt.subplot(111, aspect='equal')”,所以情节将在不同的图上。而我也做不到:
a = sns.lmplot("z1", "z2", data=rect, hue='Digit', fit_reg=False, size=10)
a.add_artist(elps)
因为 sns.lmplot() 返回的“a”属于“seaborn.axisgrid.FacetGrid”对象。有什么解决办法吗?无论如何我可以绘制一个椭圆而不必像 a.set_artist() 这样的东西?
【问题讨论】:
标签: python pandas matplotlib plot seaborn