с рекурсивным запросом в оракуле [дубликат]

Идея заключалась бы в создании осей ax и двойных осей ax2 = ax.twinx() и последующего построения каждого кадра данных для одного из них df.plot(ax=ax) и df2.plot(ax=ax2).

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

a = np.linspace(-5,5, 11)
data1 = np.sort(np.random.rand(len(a),5))
data1[:,0] =a 
data2 = np.sort(np.random.rand(len(a),5))*10
data2[:,0] =a 
df = pd.DataFrame(data1, columns=["A", "B1", "C1", "D1", "E1"])
df2 = pd.DataFrame(data2, columns=["A", "B2", "C2", "D2", "E2"])

fig, ax = plt.subplots()
ax2 = ax.twinx()

df.plot(x="A", y=["B1", "C1", "D1", "E1"], ax=ax)
df2.plot(x="A", y=["B2", "C2", "D2", "E2"], ax=ax2, ls="--")

plt.show()

Если вместо этого вы хотите иметь два отдельных графика (вопрос непонятен в этой точке), вы можете сделать это с помощью

fig, (ax, ax2) = plt.subplots(ncols=2)

и удаление вызова twinx.

1
задан echo 13 July 2018 в 08:40
поделиться

1 ответ

Вы можете упростить это, вы напрямую работаете с датами:

WITH t(n) AS (
  SELECT date '2009-10-08' from dual
  UNION ALL
  SELECT n - 1 
  FROM t 
  WHERE n > date '2009-10-05'
)
SELECT to_char(n, 'yyyy-mm-dd') as n 
FROM t;

возвращает:

N         
----------
2009-10-08
2009-10-07
2009-10-06
2009-10-05

Были некоторые ошибки в отношении использования DATE ( или TIMESTAMP) арифметики в рекурсивных CTE. Выше работала для меня с использованием Oracle 12.2.0.1 и 11.2.0.3

2
ответ дан a_horse_with_no_name 17 August 2018 в 13:20
поделиться
  • 1
    Получили ли вы проблему, о которой OP сообщал с их запросом в 11.2.0.3? Теперь, когда вы упомянули об этом, я напоминаю о проблемах с датами и рекурсивными запросами в 11.2.0.3. К счастью, где я сейчас работаю, мы находимся на 11.2.0.4! (Хотя я действительно удивляюсь, если я обречен никогда не работать на 12c! * {;-)) – Boneist 13 July 2018 в 09:03
  • 2
    Благодарю. это решило мой вопрос о дате в рекурсивном ците, о котором я еще не спрашивал в SO. в oracle 11.2, арифметика даты в рекурсивной работе вообще не работает, и я должен использовать to_char. – echo 13 July 2018 в 09:08
  • 3
    @echo: это сработало для меня в 11.2.0.3 – a_horse_with_no_name 13 July 2018 в 09:15
  • 4
    @a_horse_with_no_name спасибо. версия, над которой я работал, - 11.2.0.1.0. – echo 13 July 2018 в 10:07
Другие вопросы по тегам:

Похожие вопросы: