0

我写了一个简单的代码来开始使用 Matplotlib 上的 Joyplots。这是整个代码:

import random
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt import joypy

random.seed(4554)

randomlist = random.sample(range(100,10000),1000) 
randomyear = np.linspace(1018,2018,num=1001)
 
df=pd.DataFrame(list(zip(randomyear,randomlist)),columns=['Year','Values'])

fig, axes = joypy.joyplot(df, by="Year", column="Values",figsize=(5,8))

plt.show()

我不断收到此错误:

ValueError: `dataset` input should have multiple elements.

这是什么意思,我做错了什么,以及如何修复此代码?

4

2 回答 2

0

您需要每年生成多条记录;您的代码每年生成一条记录。

我已经更新了你的随机数生成:

import random
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt 
import joypy

random.seed(4554)

randomlist = np.random.rand(1000)
randomyear = list(range(1999, 2019)) * 50

df = pd.DataFrame(list(zip(randomyear,randomlist)), columns= ['Year','Values'])

fig, axes = joypy.joyplot(df, by="Year", column="Values",figsize=(5,8))
于 2019-03-26T15:17:31.173 回答
0

I got the same error using the following code:

fig, axes = joypy.joyplot(data_sub[["AC","B"]], by="AC", column="B")

ValueError: `dataset` input should have multiple elements.

I checked my dataframe column "AC". This column was supposed to only include values AC1, AC2 and AC3.

But I noticed that I have

  • 100 rows of "AC1"
  • 103 rows of "AC2"
  • 99 rows of "AC3"
  • 1 row of "Other" (this should have been AC3)

I replaced "Other" with "AC3" so that no values in the "AC" column of my dataset appears only once. It fixed my problem.

于 2019-07-23T07:29:46.657 回答