Python散点图与线型图和列值的比较

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

不知道有没有人可以帮我澄清一下。

基本上,我有一个数据框,看起来像这样。

        Data_Value
Month_Day   
01-01     1.1
01-02     3.9
01-03     3.9
01-04     4.4

我可以用这段代码在这个数据框上生成线图

ax.plot(df.values)

我在从同一个数据框中生成散点图时遇到了一些问题 我想知道这是否可能,因为在数据框的索引列中有一个"-"。然而,我也在想,既然可以生成线图,那么也应该可以生成散点图?

如果有什么见解,非常欢迎。

当我尝试这段代码时。

df = df.reset_index()
df['Month_Day'] = pd.to_datetime(df['Month_Day'], format='%m-%d')
df.plot(type='scatter',x='Month_Day',y='Data_Value')

我得到一个错误的msg:

AttributeError: Unknown property type

我的Pandas版本: 0.19.2

pandas matplotlib scatter
2个回答
0
投票

不知道我是否完全理解你的问题,但如果只是创建散点图,你可以尝试重置索引,将 "Month_Date "转换为常规列,并将其转换为日期时间。我尝试了以下方法。

df.reset_index(inplace=True)

df['Month_Day'] = pd.to_datetime(df['Month_Day'], format='%m-%d')

# you can replace the year with any value, using 2020 as an example
df['Month_Day'] = [val.replace(year=2020) for val in df['Month_Day']]

print(df)

输出:

   Month_Day  Data_Value
0 2020-01-01         1.1
1 2020-01-02         3.9
2 2020-01-03         3.9
3 2020-01-04         4.4

然后生成一个散点图

import matplotlib.pyplot as plt

# generate the plot
plt.scatter(df['Month_Day'], df['Data_Value'])
plt.show()

enter image description here


0
投票

你可以这样做,但我相信你必须要有... ... 'Month_Day' 列中,所以你重新设置了索引。

df = df.reset_index()
df.plot(kind='scatter',x='Month_Day',y='Data_Value') 

结果:

enter image description here

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