Я пытаюсь построить график двух типов графиков в одном и том же окне (то есть линейный график и график рассеяния). Данные, представленные на линейном графике (первый график), представляют собой плавающие числовые значения, представляющие индексы климата (Y) и десятичные годы (X). Второй график, на котором я хотел бы быть «разбросанным», почти такой же, но с плавающими числовыми значениями, представляющими потоки потоков (Y) и десятичные годы (X). Я попытался сделать это следующим образом, используя двойную ось x и вторую ось паразита y для диаграммы рассеяния:
import mpl_toolkits
from mpl_toolkits.axes_grid1 import host_subplot
import matplotlib.pyplot as plt
host = host_subplot(111)
par = host.twinx()
host.set_xlim(1880, 2020)
host.set_ylim(-5, 10)
host.set_xlabel("Time")
host.set_ylabel("PDSI Region 01")
par.set_ylabel("Minimum 10% Annual 7-day Non-exceedance Flow (cfs)")
x1 = timearray
y1 = pdsiarray01
x2 = upAmm_yr
y2 = upAmm_min
p1, = host.plot(x1, y1, label="PDSI01")
p2, = par.scatter(x2, y2, label="Annual Lowflow Upper Amm")
par.set_ylim(30, 60)
host.legend()
host.axis["left"].label.set_color(p1.get_color())
par.axis["right"].label.set_color(p2.get_color())
plt.draw()
plt.show()
и я получаю код ошибки:
TypeError: cannot perform reduce with flexible type
Этот код работает нормально, когда я заменяю scatter на plot в строке, начинающейся с p2, но выдает вторую линию plot. Основная причина, по которой я хочу, чтобы это было разбросано, заключается в том, что во втором наборе данных должно быть отображено гораздо меньше точек, а линии, соединяющие их, отвлекают и «запутывают» (когда все, что мне нужно, это выделить момент во времени). Гистограмма вместо разброса тоже подойдет. Любые предложения или помощь будет принята с благодарностью!