显示xticks是x轴的功能,而不是直接显示其自身的数据。日期示例(熊猫,matplotlib)

问题描述 投票:0回答:1

[与seaborn一起工作时,我尝试将x-ticks设置为与我的数据不同,但未成功。我将在稍后给出具体示例,但我也概括了我的问题。如果对一般性问题有一个规范的答案,那将是很好的。

是否可以将x-ticks设置为我用于绘图的数据的函数?当我无法直接绘制数据功能时。

  1. 假设我有一个接收x并返回f(x)的方法。是否可以通过x绘制数据,但在x轴上显示f(x)?就像为每个数字返回一个字符串,我想显示该字符串。
  2. [如果我有一个数据框,我将其列名称命名为“ col_x”作为x轴,我希望代替该x标记显示“ col_f_x”的数据。我可以以某种方式使两列之间“匹配”吗?

问题当然很相似,虽然第一个假设我有一个函数,第二个直接询问数据帧中的两列。

现在为具体示例。我最初的目标是在日期上使用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'])

输出:

displot with days instead of dates

我使用了不同的日期数字,而不是直接绘制日期列。但是我希望我的xticks是日期,而不是数值差。我该怎么办?

我希望我的两个一般性问题现在更加清楚:我仍然不确定如何相应地设置x标记,因此可以向绘图提供一个函数(日期-起始日期)或其他列(日期)。]

[在我的小型研究期间,我解决了matplotlib的major_locatormajor_formatter。我想我应该使用它们,但是我不知道该怎么做。我在搜索过程中发现的堆栈溢出中的一些相关文章:

Manipulating Dates in x-axis Pandas Matplotlib

Set the labels between xticks

matplotlib set xticks to column, labels to corresponding index

plot_date function set xticks for hourly data

[与seaborn一起工作时,我尝试将x-ticks设置为与我的数据不同,但未成功。我将在稍后给出具体示例,但我也概括了我的问题。如果有规范的...

python pandas matplotlib data-visualization seaborn
1个回答
0
投票

在代码末尾运行以下内容

© www.soinside.com 2019 - 2024. All rights reserved.