Как мне наложить четыре графика с одинаковыми категориями на оси х? - PullRequest
0 голосов
/ 08 июля 2019

У меня есть несколько фреймов данных

df1
num_category value
1201         999
1348         999
9999         111

df2
num_category value
1201         998
1348         998
9999         118

df3
num_category value
1201         998
1348         997
9999         117

df4
num-category value
1201         999
1348         999
9999         119

Перед построением графика я превратил «категорию» в категорию, потому что они являются произвольными метками, и между числовыми значениями существует большой скачок.

Я написал следующий код для каждого df (где x принимает значение от 1 до 4, но не в цикле for), где цвет отличается для каждого графика.

dfx['char_category'] = dfx['category'].astype('category')
dfx = dfx.set_index('char_category')
dfx.plot(y = 'value', marker = 'o', figsize = [12,6], color = 'green')
plt.xticks(np.arange(len(dfx.index)), dfx.index, rotation = 90)

После четырех сюжетов, которые я написал

plt.show()

Но это показывает 4 отдельных графика, а не наложенных.

Я тоже пытался

dfs = [df1,df2,df3,df4]
for df in dfs:
    df['char_category'] = df['num_category'].astype('category')
    plt.scatter(x=df['char_category'],y=df['value'],marker='o')

plt.legend(loc='best')
plt.show()

это действительно накладывает графики, но это переключает переменную 'category' обратно на числовую переменную, и есть много пустой области графика в середине, потому что 'category' буквально является категорией (которую я не могу переименовать для интерпретации причины)

...