Я хотел бы построить параллельные координаты для pandas
DataFrame, содержащего столбцы с числами и другие столбцы, содержащие строки в качестве значений.
Описание проблемы
У меня есть следующий тестовый код, который работает для построения параллельных координат с числами:
import pandas as pd
import matplotlib.pyplot as plt
from pandas.tools.plotting import parallel_coordinates
df = pd.DataFrame([["line 1",20,30,100],\
["line 2",10,40,90],["line 3",10,35,120]],\
columns=["element","var 1","var 2","var 3"])
parallel_coordinates(df,"element")
plt.show()
В итоге отображается следующий рисунок:
Однако я хотел бы попытаться добавить к моему графику некоторые переменные со строками. Но когда я запускаю следующий код:
df2 = pd.DataFrame([["line 1",20,30,100,"N"],\
["line 2",10,40,90,"N"],["line 3",10,35,120,"N-1"]],\
columns=["element","var 1","var 2","var 3","regime"])
parallel_coordinates(df2,"element")
plt.show()
Я получаю эту ошибку:
ValueError: неверный литерал для float(): N
Что, я полагаю, означает, что функция parallel_coordinates
не принимает строки.
Пример того, что я пытаюсь сделать
Я пытаюсь сделать что-то вроде этого примера, где раса и пол являются строками, а не числами:
Вопрос
Есть ли способ выполнить такую графику, используя pandas
parallel_coordinates
? Если нет, то как я мог попытаться сделать такую графику? Может с matplotlib
?
Я должен упомянуть, что я особенно ищу решение для Python 2.5 с версией pandas 0.9.0
.