точки, которые должны быть нанесены не в порядке - PullRequest
0 голосов
/ 04 сентября 2018

Мало точек данных было получено из опыта, но они не в порядке, поэтому линии между графиками не являются правильными, Мне нужно построить их, скажем, в порядке увеличения в Xaxis

C=[0.5,4,2,1,3,8,6,10]
D=[20,2,2,10,0.3,2.5,0.8,1]
%matplotlib inline
import matplotlib.pyplot as plt
#plot obtained from given data points
plt.plot(C,D)


## required plot 
A=[0.5, 1, 2, 3, 4, 6, 8, 10]
B=[20, 10, 2, 0.5, 2, 0.8, 2.5, 1]
plt.plot(A,B)

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Решение с использованием pandas. Я рекомендую использовать DataFrames в будущем для построения графиков.

from matplotlib import pyplot as plt
import pandas as pd

C= [0.5, 4, 2, 1, 3, 8, 6, 10]
D= [20, 2, 2, 10, 0.3, 2.5, 0.8, 1]

xy = pd.DataFrame({'x': C, 'y': D})
xy.sort_values('x', inplace=True)

plt.plot(xy['x'], xy['y'])
plt.show()

enter image description here

0 голосов
/ 04 сентября 2018

Ваш C не отсортирован, и поэтому по умолчанию точки, которые соединяются сплошной линией, выглядят как беспорядок в ваших выводах plot(C,D). Лично я бы использовал функцию np.argsort, чтобы получить отсортированные индексы C и использовать их для построения графиков C и D следующим образом (показывая только соответствующие добавленные строки):

import numpy as np
C = np.array([0.5,4,2,1,3,8,6,10])
D = np.array([20,2,2,10,0.3,2.5,0.8,1])
plt.plot(sorted(C), D[np.argsort(C)], 'b')

выход

enter image description here

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