我正在尝试使用Seaborn数据框功能(例如,将列名称传递到x
,y
和hue
绘图参数)用于我的时间序列图(以pandas datetime格式显示)。 / p>
x
应该来自“时间序列”列(从pd。具有pd.to_datetime的字符串序列转换)y
应该来自浮点列hue
来自我计算出的分类列。同一系列中有多个流正在尝试分离(并使用色相在视觉上将其分离),因此,它们不应通过线连接(如在散点图中)
我尝试了以下情节类型,每种都有不同的问题:
sns.scatterplot
:获取正确的打印结果,并且正确的标签总线存在xlimits问题,我无法使用data.Dates.min和data.Dates的plt.xlim()正确设置它们.min
sns.lineplot
:获得了正确的限制和标签,但是我找不到像matplotlib这样的设置来禁用各个数据点之间的行。我尝试将markers
和dashes
参数设置为无效。
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标签的点(而非线):)
任何帮助将不胜感激。
答案 0 :(得分:0)
ax = sns.scatterplot(x='Dates', y='Values', hue='Clusters', data=data)
ax.set_xlim(data['Dates'].min(), data['Dates'].max())