在使用海运时,我试图将x-ticks设置为与我的数据不同,但没有成功。我稍后会给出具体的例子,但我也概括了我的问题。如果对一般问题有一个规范的答案,那将是伟大的。
是否可以将x-ticks设置为我用来绘图的数据的函数?当我不能直接绘制数据的函数时。
x并返回f(x)的方法。是否可以用x绘制数据,但在x轴上显示f(x)?就像为每个数字返回一个字符串一样,我想要显示这个字符串。当然,问题是类似的,虽然第一个假设我有一个函数,第二个问题直接询问了dataframe中的两列。
现在是具体的例子。我最初的目标是在约会时使用seaborn.displot。不幸的是,它似乎不支持使用日期。我决定做一些绕行和绘制数据的天差。我解释了我在这里所做的:How to plot Pandas datetime series in Seaborn distplot? ,这是我问题的来源。
让我们使用这个简单的例子:
import pandas as pd
import datetime as dt
original_dates = ["2016-03-05", "2017-03-05", "2016-02-05", "2016-02-05", "2016-02-05", "2015-03-05"]
dates_list = [dt.datetime.strptime(date, '%Y-%m-%d').date() for date in original_dates]
df = pd.DataFrame({"Date":dates_list})
df["NewDate"] = df["Date"] - dt.date(2015,3,5)
df["NewDate"] = df["NewDate"].apply(lambda x: x.days)
import seaborn as sns
sns.set()
ax = sns.distplot(df['NewDate'])输出:

我用数字不同的日子,而不是直接绘制日期列。但我希望我的xticks是日期,而不是数字差异。我该怎么做?
我希望我的两个一般性问题现在更清楚了:我可以向绘图提供一个函数(日期- starting_date)或不同的列(日期),我仍然不确定如何相应地设置x-滴答。
在我对此进行的小型研究中,我跨matplotlib的major_locator和major_formatter进行了研究。我想我应该使用它们,但我想不出如何独自完成它。我在搜索过程中发现堆栈溢出中的一些相关帖子:
Manipulating Dates in x-axis Pandas Matplotlib
matplotlib set xticks to column, labels to corresponding index
发布于 2020-06-07 07:21:56
在代码末尾运行以下命令
import matplotlib.pyplot as plt
def my_func(x):
return dt.date(2015,3,5) + dt.timedelta(days=x)
ticks = plt.xticks()[0]
dates = [my_func(x) for x in ticks]
plt.xticks(ticks, dates)https://stackoverflow.com/questions/62241723
复制相似问题