Как построить гистограмму с Python ggplot?
Я хотел бы построить гистограмму, представляющую значение TP на оси Y и метод на оси X. В частности, я хотел бы получить разные цифры в соответствии со значением столбца "данные".
В этом случае мне нужна первая гистограмма со значениями 2,1,6,9,8,1,0 и вторая гистограмма со значениями 10,10,16,...
Версия ggplot на python, похоже, немного отличается от версии R.
FN FP TN TP data method
method
SS0208 18 0 80 2 A p=100 n=100 SNR=0.5 SS0208
SS0408 19 0 80 1 A p=100 n=100 SNR=0.5 SS0408
SS0206 14 9 71 6 A p=100 n=100 SNR=0.5 SS0206
SS0406 11 6 74 9 A p=100 n=100 SNR=0.5 SS0406
SS0506 12 6 74 8 A p=100 n=100 SNR=0.5 SS0506
SS0508 19 0 80 1 A p=100 n=100 SNR=0.5 SS0508
LKSC 20 0 80 0 A p=100 n=100 SNR=0.5 LKSC
SS0208 10 1 79 10 A p=100 n=100 SNR=10 SS0208
SS0408 10 0 80 10 A p=100 n=100 SNR=10 SS0408
SS0206 4 5 75 16 A p=100 n=100 SNR=10 SS0206
В качестве первого шага я попытался построить только одну гистограмму и получил ошибку.
df = df[df.data == df.data.unique()[0]]
In [65]: ggplot() + geom_bar(df, aes(x='method', y='TP'), stat='identity')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-65-dd47b8d85375> in <module>()
----> 1 ggplot() + geom_bar(df, aes(x='method', y='TP'), stat='identity')
TypeError: __init__() missing 2 required positional arguments: 'aesthetics' and 'data'w
In [66]:
Я пробовал разные комбинации команд, но не решил.
Как только эта первая проблема будет решена, я бы хотел, чтобы гистограммы были сгруппированы в соответствии со значением "data". Это может быть сделано 'facet_wrap'
1 ответ
Это, вероятно, потому что вы позвонили ggplot()
без аргумента (не уверен, если это возможно. Если вы так думаете, пожалуйста, добавьте вопрос на http://github.com/yhat/ggplot).
Во всяком случае, это должно работать:
ggplot(df, aes(x='method', y='TP')) + geom_bar(stat='identity')
К сожалению, фасетирование с помощью geom_bar еще не работает должным образом (только когда все фасеты имеют все значения уровней / x!) -> Bugreport