Как сравнивать данные, используя график - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть два значения value_counts ():

languages_1 = q1['LanguageWorkedWith'].str.split(';', expand = True).stack().value_counts()    
languages_2 = q2['LanguageWorkedWith'].str.split(';', expand = True).stack().value_counts()

Я могу легко отобразить эти два отдельных значения:

languages_1.plot(kind = "bar")
languages_2.plot(kind = "bar")

Но я хочу отобразить их на том же графике, что и в изображение:

enter image description here

Я пытался таким образом:

from collections import Counter

x = dict(languages_18)
y = dict(languages_19)

array_languages_18 = []
array_languages_19 = []

array_numbers_18 = []
array_numbers_19 = []

count = 25
for (k, v) in x.items():
    count = count-1
    array_languages_18.append(k)
    array_numbers_18.append(v)
    if count == 0:
        count = 25
        break

for (k, v) in y.items():
    count = count-1
    array_languages_19.append(k)
    array_numbers_19.append(v)
    if count == 0:
        break

df_comparison = pd.DataFrame({'2019': array_numbers_19,
                   '2018': array_numbers_18}, index=array_languages_19)

ax = df_comparison.plot.bar(rot=0)
plt.rcParams['figure.figsize'] = [40, 20]
plt.xticks(rotation='vertical')
plt.rcParams.update({'font.size': 40})

Но есть ли лучшие решения для его достижения?

Есть намеки? спасибо

1 Ответ

1 голос
/ 30 апреля 2020
languages_1 = q1['LanguageWorkedWith'].str.split(';', expand = True).stack().value_counts()    
languages_2 = q2['LanguageWorkedWith'].str.split(';', expand = True).stack().value_counts()    

df_comparison = pd.concat([languages_1.combine(languages_2,max).rename('languages_1').fillna(0), 
                           languages_2.combine(languages_1,max).rename('languages_2').fillna(0)], axis=1)

ax = df_comparison.plot.bar(rot=0)
plt.rcParams['figure.figsize'] = [40, 20]
plt.xticks(rotation='vertical')
plt.rcParams.update({'font.size': 40})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...