Pandas中的plot()函数存在问题
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randn(8, 4), columns=['A', 'B', 'A', 'B'])
ax = df.plot()
ax.legend(ncol=1, bbox_to_anchor=(1., 1, 0., 0), loc=2 , prop={'size':6})
这会产生一条线条过多的情节。但请注意,一半会相互叠加。它似乎与轴有关,因为当我不使用它时,问题就会消失。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randn(8, 4), columns=['A', 'B', 'A', 'B'])
df.plot()
虽然不知道我的用例,但可以通过使用MultiIndex
来解决问题columns = pd.MultiIndex.from_arrays([np.hstack([ ['left']*2, ['right']*2]), ['A', 'B']*2], names=['High', 'Low'])
df = pd.DataFrame(np.random.randn(8, 4), columns=columns)
ax = df.plot()
ax.legend(ncol=1, bbox_to_anchor=(1., 1, 0., 0), loc=2 , prop={'size':16})
答案 0 :(得分:0)
它与您的列名重复有关,而不是ax
(如果您在第二个示例之后调用plt.legend
,则会看到相同的额外行)。拥有多个具有相同名称的列会使调用混淆为DataFrame.plot_frame
。
如果您将列更改为['A', 'B', 'C', 'D']
,则可以。