Python 绘制连接两个Swarmlot的单个数据点的彩色线
我有: 使用seaborn的Swarmlot函数绘制的两个随机分布: 我希望两个分布的单独绘图都用一条彩色线连接,这样数据框中集合1的第一个数据点就与集合2的第一个数据点连接起来。 我意识到,如果没有seaborn,这可能会相对简单,但我希望保留单个数据点不重叠的特性。Python 绘制连接两个Swarmlot的单个数据点的彩色线,python,matplotlib,seaborn,swarmplot,Python,Matplotlib,Seaborn,Swarmplot,我有: 使用seaborn的Swarmlot函数绘制的两个随机分布: 我希望两个分布的单独绘图都用一条彩色线连接,这样数据框中集合1的第一个数据点就与集合2的第一个数据点连接起来。 我意识到,如果没有seaborn,这可能会相对简单,但我希望保留单个数据点不重叠的特性。 是否有任何方法可以访问seaborn Swarm功能中的各个绘图坐标?当然可以,但您确实不想这样做 在这里返回axis实例:ax。您可以抓取子对象ax.get_children以获取所有绘图元素。您将看到,对于每一组点,都有一
是否有任何方法可以访问seaborn Swarm功能中的各个绘图坐标?当然可以,但您确实不想这样做 在这里返回axis实例:ax。您可以抓取子对象ax.get_children以获取所有绘图元素。您将看到,对于每一组点,都有一个PathCollection类型的元素。可以使用PathCollection.get_offsets方法确定x、y坐标 我不建议你这样做!疯狂就在这里
我建议你看一下源代码,从Swarmlotter派生出你自己的PairedSwarmlotter,并根据需要更改draw Swarmlot方法 当然,这是可能的,但你真的不想 在这里返回axis实例:ax。您可以抓取子对象ax.get_children以获取所有绘图元素。您将看到,对于每一组点,都有一个PathCollection类型的元素。可以使用PathCollection.get_offsets方法确定x、y坐标 我不建议你这样做!疯狂就在这里 我建议你看一下源代码,从Swarmlotter派生出你自己的PairedSwarmlotter,并根据需要更改draw Swarmlot方法 尽管他这么说,我还是试着给出了很好的答案 疯狂就在这里 。。。事实上,我认为这是非常直接的,并产生了很好的结果:
import numpy as np
import pandas as pd
import seaborn as sb
import matplotlib.pyplot as plt
# Generate random data
set1 = np.random.randint(0, 40, 24)
set2 = np.random.randint(0, 100, 24)
# Put into dataframe and plot
df = pd.DataFrame({'set1': set1, 'set2': set2})
data = pd.melt(df)
sb.swarmplot(data=data, x='variable', y='value')
尽管他这么说,我还是试着给出了很好的答案
疯狂就在这里
。。。事实上,我认为这是非常直接的,并产生了很好的结果:
import numpy as np
import pandas as pd
import seaborn as sb
import matplotlib.pyplot as plt
# Generate random data
set1 = np.random.randint(0, 40, 24)
set2 = np.random.randint(0, 100, 24)
# Put into dataframe and plot
df = pd.DataFrame({'set1': set1, 'set2': set2})
data = pd.melt(df)
sb.swarmplot(data=data, x='variable', y='value')
事实上,我并没有真正测试它,但它看起来非常简单。谢谢你。您只缺少导入seaborn作为sns,可以将其中一个导入numpy作为np删除。谢谢,我已修复它!->是的,我现在也用这个方法画了一个2x2的图,所以有更多的点,它同样直接工作。唯一困难的部分是找出ax的哪些子对象是要使用的对象。事实上,我并没有真正测试它,但它似乎非常简单。谢谢你。您只缺少导入seaborn作为sns,可以将其中一个导入numpy作为np删除。谢谢,我已修复它!->是的,我现在也用这个方法画了一个2x2的图,所以有更多的点,它同样直接工作。唯一困难的部分是找到斧子的哪个孩子是要使用的对象。