让我们看看一个swarmplot,用Python 3.5和Seaborn制作一些数据(存储在一个pandas数据帧df中,列标签存储在另一个类中。这没关系,现在看看积):
ax = sns.swarmplot(x=self.dte.label_temperature, y=self.dte.label_current, hue=self.dte.label_voltage, data = df)
现在,如果在y轴上以对数刻度绘制数据,则数据更具可读性,因为它可以持续几十年。 因此,让我们将缩放比例更改为对数:
ax.set_yscale("log")
ax.set_ylim(bottom = 5*10**-10)
我对群中的空隙有疑问。我猜他们在那里,因为他们已经在那里创建了一个线性轴的情节,并且点不应该在那里重叠。但是现在它们看起来很奇怪,并且有足够的空间来容纳4个相同的群体。 我的问题是:我怎样才能强迫Seaborn重新计算圆点的位置以创造更好看的群体?
答案 0 :(得分:3)
mwaskom在评论中向我暗示如何解决这个问题。 它甚至在沼泽地doku中说明:
请注意,正确排列点需要在数据和点坐标之间进行精确转换。这意味着应在绘制swarm图之前设置非默认轴限制。
将现有轴设置为对数刻度,并将其用于绘图:
fig = plt.figure() # create figure
rect = 0,0,1,1 # create an rectangle for the new axis
log_ax = fig.add_axes(rect) # create a new axis (or use an existing one)
log_ax.set_yscale("log") # log first
sns.swarmplot(x=self.dte.label_temperature, y=self.dte.label_current, hue=self.dte.label_voltage, data = df, ax = log_ax)