Ошибка с дополнительной осью и осью даты x - PullRequest
0 голосов
/ 10 октября 2018

Я хочу сделать график со вторичной осью, чтобы иметь более хорошее представление данных.Первичная ось у - это преобразование, а вторичная ось у - гистограмма, показывающая объем.

Мой фрейм данных:

df
     date_nk            channel_sk   dauli     dau  dauliPdau
  2018-09-01    mobile_app|android  271166  319648   0.848327
  2018-09-02    mobile_app|android  306497  362779   0.844859
  2018-09-03    mobile_app|android  311189  365406   0.851625
  2018-09-04    mobile_app|android  302114  354216   0.852909
  2018-09-05    mobile_app|android  301301  352287   0.855271

И мой код графика для построения графика с вторичной осью Y:

sns.set()
fig, (ax1) = plt.subplots(nrows=1, ncols=1,figsize=(15,8))

st = fig.suptitle("Total active users log in (DAULI) / Total active users 
(DAU)", fontsize=15)
st.set_y(0.95)

# First graph
ax1.plot(df['date_nk'],df['dauliPdau'], 
color='darkblue',marker='o',label='mobile_app|android')

ax1.legend(bbox_to_anchor=(1, 1), loc=2, borderaxespad=0.)

ax1v = ax1.twinx()

ax1v.bar(df['date_nk'] , df['dauliPdau'])

Всякий раз, когда я запускаю код, я получаю следующую ошибку:

TypeError: вычитание ufunc не может использовать операнды с типами dtype ('

1 Ответ

0 голосов
/ 10 октября 2018
  1. Если я запускаю ваш код, ошибки нет;генерируется следующий график:

enter image description here

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

Я не знаю, что вы подразумеваете под "конверсией" и "объемом", которые, как вы говорите, показаны на первичной и вторичной оси Y,Но в вашем коде вы помещаете одни и те же данные в обе команды построения графика, линейный и линейный график:
ax1.plot(df['date_nk'], df['dauliPdau'], ...
ax1v.bar(df['date_nk'], df['dauliPdau'])

Кроме того, яХотелось бы отметить, что вам не нужны паратезы вокруг ax1 в строке fig, ax1 = plt.subplots(...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...