我的 DataFrame 对象看起来像
数量日期2014-01-06 12014-01-07 12014-01-08 42014-01-09 12014-01-14 1我想要一种散点图,时间沿 x 轴,数量在 y 上,用一条线穿过数据来引导观察者的视线.如果我使用 pandas plot df.plot(style="o") 这不太正确,因为该行不存在.我想要
ax = seaborn.regplot(数据=df,x='date_ordinal',y='金额',)# 收紧坐标轴以保持美观ax.set_xlim(df['date_ordinal'].min() - 1, df['date_ordinal'].max() + 1)ax.set_ylim(0, df['amount'].max() + 1)ax.set_xlabel('date')new_labels = [date.fromordinal(int(item)) for item in ax.get_xticks()]ax.set_xticklabels(new_labels)哒哒!
My DataFrame object looks like
amount
date
2014-01-06 1
2014-01-07 1
2014-01-08 4
2014-01-09 1
2014-01-14 1
I would like a sort of scatter plot with time along the x-axis, and amount on the y, with a line through the data to guide the viewer's eye. If I use the pandas plot df.plot(style="o") it's not quite right, because the line is not there. I would like something like the examples here.
note: this has a lot in common with Ian Thompson's answer but the approach is different enough to have it be a separate answer. I use the DataFrame format provided in the question and avoid changing the index.
Seaborn and other libraries don't deal as well with datetime axes as you might like them to. Here's how I'd work around it:
Seaborn will deal better with these than with dates. This is a handy trick for doing all kind of mathy things with dates and libraries that don't love dates.
from datetime import date
df['date_ordinal'] = pd.to_datetime(df['date']).apply(lambda date: date.toordinal())
ax = seaborn.regplot(
data=df,
x='date_ordinal',
y='amount',
)
# Tighten up the axes for prettiness
ax.set_xlim(df['date_ordinal'].min() - 1, df['date_ordinal'].max() + 1)
ax.set_ylim(0, df['amount'].max() + 1)
ax.set_xlabel('date')
new_labels = [date.fromordinal(int(item)) for item in ax.get_xticks()]
ax.set_xticklabels(new_labels)
ta-daa!
这篇关于如何在 x 轴上绘制带有日期时间的线性回归的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何在 conda 环境中安装 Selenium?How to install Selenium in a conda environment?(如何在 conda 环境中安装 Selenium?)
使用 Anaconda installe 在 Windows 上获取 CUDA 和 CUDNNget the CUDA and CUDNN version on windows with Anaconda installe(使用 Anaconda installe 在 Windows 上获取 CUDA 和 CUDNN 版本)
如何下载适用于 python 3.6 的 AnacondaHow can I download Anaconda for python 3.6(如何下载适用于 python 3.6 的 Anaconda)
使用两个不同的 Python 发行版Using two different Python Distributions(使用两个不同的 Python 发行版)
除了 OSX 上现有的 pyenv 安装之外,如何安装 AnaHow can I install Anaconda aside an existing pyenv installation on OSX?(除了 OSX 上现有的 pyenv 安装之外,如何安装 Anaconda?)
在 Cygwin 中为 Anaconda 永久设置 Python 路径Permanently set Python path for Anaconda within Cygwin(在 Cygwin 中为 Anaconda 永久设置 Python 路径)