valueerror:“c”参数必须是颜色、颜色序列或数字序列,而不是“datetime”的索引

2024-03-29 08:57:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我在matplotlib.pyplot上遇到了一个难题,这让人费解

在我正在参加的DataCamp课程中,答案的解决方案是以下代码:

# Scatterplot with color relating to time
prices.plot.scatter('EBAY', 'YHOO', c=prices.index, 
                cmap=plt.cm.viridis, colorbar=False)
plt.show()

以及数据帧(这是来自Kaggle的纽约证券交易所数据集):

                EBAY       YHOO
date                            
2010-01-04  23.900000  17.100000
2010-01-05  23.650000  17.230000
2010-01-06  23.500000  17.170000
2010-01-07  23.229998  16.700001
2010-01-08  23.509999  16.700001

现在在DataCamp解决方案中,它可以工作并生成一个绘图,但是当我尝试使用PyCharm自己复制它时,我得到以下错误消息:

ValueError: 'c' argument must be a color, a sequence of colors, or a sequence of numbers, not Index(['2010-01-04', '2010-01-05', ...

你知道为什么它不起作用吗

下面是由DataCamp中的代码生成的图:

enter image description here


Tags: of数据答案matplotlibplt解决方案课程color
1条回答
网友
1楼 · 发布于 2024-03-29 08:57:55

我认为错误信息可能更清楚

但是,从索引的显示方式来看,问题是显而易见的:您有一个objectstr索引而不是DatetimeIndex

如果您在呼叫.scatter()之前执行此操作,您将回到正轨:

import pandas as pd

prices.index = pd.to_datetime(prices.index)

相关问题 更多 >