2016-04-22 2 views
0

новый ученик Python здесь. Это кажется очень простой задачей, но я не могу это сделать, чтобы спасти свою жизнь.Python sort_values ​​участок инвертирован

Все, что я хочу сделать, это захватить 1 столбец из моего DataFrame, отсортировать его, а затем построить. ЭТО ОНО. Но когда я рисую это, график инвертируется. После осмотра, я считаю, что значения сортируются, но индекс не ...

Вот мой простой код 3 лайнера:

testData = pd.DataFrame([5,2,4,2,5,7,9,7,8,5,4,6],[9,4,3,1,5,6,7,5,4,3,7,8]) 
x = testData[0].sort_values() 
plt.plot(x) 

редактировать: Использования Matplotlib

+0

Вы всегда должны указывать, какую библиотеку вы используете в таких вопросах. –

+0

Что касается «инвертированного графа» - я полагаю, вы имеете в виду, что Pandas отображает его как значения по оси y против индекса по оси x. Это вполне нормальное поведение. Если вы хотите изменить его, просто сделайте что-то вроде 'plt.plot (x, range (len (x)))', чтобы явно указать, что 'x' следует рассматривать как переменную оси x и соответствующие индексы в виде y- оси. –

+0

выглядит как matplotlib для меня – Greg

ответ

0

Если вы» re говоря о порядковых значениях последовательно по оси x, например, 0, 1, 2, 3, 4 ... Вам нужно повторно проиндексировать свои значения.

x = testData[0].sort_values() 
x.index = range(len(x)) 
plt.plot(x) 

re-indexed values

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

plt.scatter(x.index, x.values) 

scatter plot

+0

Спасибо !!! Это сделал трюк !!! –

Смежные вопросы