График трендов с помощью Matplotlib - PullRequest
1 голос
/ 23 апреля 2019

У меня есть следующие списки:

input = ['"25', '"500', '"10000', '"200000', '"1000000']
inComp = ['0.000001', '0.0110633', '4.1396405', '2569.270532', '49085.86398']
quickrComp=['0.0000001', '0.0003665', '0.005637', '0.1209121', '0.807273']
quickComp = ['0.000001', '0.0010253', '0.0318653', '0.8851902', '5.554448']
mergeComp = ['0.000224', '0.004089', '0.079448', '1.973014', '13.034443']

Мне нужно создать график тренда, чтобы продемонстрировать рост значений inComp, quickrComp, quickComp, mergeComp по мере роста входных значений (входные данные - это x-ось).Я использую matplotlib.pyplot и следующий код:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(input,quickrComp, label="QR")
ax.plot(input,mergeComp, label="merge")
ax.plot(input, quickComp, label="Quick")
ax.plot(input, inComp, label="Insrção")
ax.legend()
plt.show()

Однако происходит следующее: значения оси y неупорядочены;значения quickrComp на оси Y сначала вставляются;затем все значения mergeComp и так далее.Мне нужно, чтобы значения по оси Y начинались с 0 и заканчивались самыми высокими значениями из 4 строк.Как я могу это сделать?

1 Ответ

0 голосов
/ 23 апреля 2019

Две вещи: во-первых, ваши значения y являются строками.Вам необходимо преобразовать данные в числовой (float) тип.Во-вторых, ваши значения y в одном из списков огромны по сравнению с остальными тремя списками.Таким образом, вам придется преобразовать шкалу y в логарифмическую, чтобы увидеть тренд.В принципе, вы также можете конвертировать ваши значения x в float (целые числа), но в вашем примере это вам не нужно.Если вы хотите это сделать, вам также придется убрать " с передней части каждого значения x.

Предупреждение: не называйте ваши переменные так же, как встроенныефункции.В вашем случае вам следует переименовать input во что-то другое, например, input1.

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

input1 = ['"25', '"500', '"10000', '"200000', '"1000000']
inComp = ['0.000001', '0.0110633', '4.1396405', '2569.270532', '49085.86398']
quickrComp=['0.0000001', '0.0003665', '0.005637', '0.1209121', '0.807273']
quickComp = ['0.000001', '0.0010253', '0.0318653', '0.8851902', '5.554448']
mergeComp = ['0.000224', '0.004089', '0.079448', '1.973014', '13.034443']


ax.plot(input1, list(map(float, quickrComp)), label="QR")
ax.plot(input1, list(map(float, mergeComp)), label="merge")
ax.plot(input1, list(map(float, quickComp)), label="Quick")
ax.plot(input1, list(map(float, inComp)), label="Insrção")
ax.set_yscale('log')
ax.legend()
plt.show()

enter image description here

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