Seaborn时间序列图:每个函数的问题不同

时间:2019-05-10 14:11:43

标签: pandas matplotlib seaborn

我正在尝试使用Seaborn数据框功能(例如,将列名称传递到xyhue绘图参数)用于我的时间序列图(以pandas datetime格式显示)。 / p>

  • x应该来自“时间序列”列(从pd。具有pd.to_datetime的字符串序列转换)
  • y应该来自浮点列
  • hue来自我计算出的分类列。

同一系列中有多个流正在尝试分离(并使用色相在视觉上将其分离),因此,它们不应通过线连接(如在散点图中)

我尝试了以下情节类型,每种都有不同的问题:

  • sns.scatterplot:获取正确的打印结果,并且正确的标签总线存在xlimits问题,我无法使用data.Dates.min和data.Dates的plt.xlim()正确设置它们.min

  • sns.lineplot:获得了正确的限制和标签,但是我找不到像matplotlib这样的设置来禁用各个数据点之间的行。我尝试将markersdashes参数设置为无效。

  • sns.stripplot:我的最后一次尝试,正确绘制了数据点并正确设置了xlimit,但弄乱了标签滴答声

易于复制的示例输入数据:

dates = pd.to_datetime(('2017-11-15',
    '2017-11-29',
    '2017-12-15',
    '2017-12-28',
    '2018-01-15',
    '2018-01-30',
    '2018-02-15',
    '2018-02-27',
    '2018-03-15',
    '2018-03-27',
    '2018-04-13',
    '2018-04-27',
    '2018-05-15',
    '2018-05-28',
    '2018-06-15',
    '2018-06-28',
    '2018-07-13',
    '2018-07-27'))
values = np.random.randn(len(dates))
clusters = np.random.randint(1, size=len(dates))
D = {'Dates': dates, 'Values': values, 'Clusters': clusters}
data = pd.DataFrame(D)

向每个函数传递相同的参数:

sns.OneOfThePlottingFunctions(x='Dates',
                     y='Values',
                     hue='Clusters',
                     data=data)
plt.show()

回顾一下,我想要的是一个使用seaborn的熊猫功能的图,并绘制具有正确x限制和可读x标签的点(而非线):)

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

ax = sns.scatterplot(x='Dates', y='Values', hue='Clusters', data=data)
ax.set_xlim(data['Dates'].min(), data['Dates'].max())