Matplotlib: многострочный сюжет - PullRequest
0 голосов
/ 17 января 2019

Мой фрейм данных выглядит следующим образом:

Bin           A      B      C   Proba-a%   Proba-b%   Proba-c%    gamma%
CPB%                                                                    
0.100     20841  23195  24546  34.503457  27.103303  22.859837     0.100
0.200      2541   4187   5176  26.517913  13.944499   6.593338     0.200
0.300      2750   1823   1122  17.875550   8.215217   3.067253     0.300
0.400       999    829    448  14.736015   5.609856   1.659334     0.400
0.500       604    495    217  12.837838   4.054181   0.977373     0.500
0.600       436    348    116  11.467630   2.960495   0.612822     0.600
0.700       367    247     76  10.314268   2.184230   0.373979     0.700
0.800       305    186     35   9.355751   1.599673   0.263985     0.800
0.900       280    115     24   8.475801   1.238254   0.188561     0.900
1.000       200    102     18   7.847266   0.917691   0.131992     1.000

я хотел бы иметь на оси x «гамма%» и диаграмму с тремя линиями A, B и C. Я видел где-точто вы должны были вызвать несколько раз PLT, я попробовал это:

plt.plot(x='gamma%', y='A', data=df_b)
plt.plot(x='gamma%', y='B',data=df_b)
plt.plot(x='gamma%', y='C',data=df_b)

Но у меня была следующая ошибка:

ValueError: Using arbitrary long args with data is not supported due to ambiguity of arguments.
Use multiple plotting calls instead.

Есть идеи?Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Вы также можете напрямую использовать свой DataFrame для зацикливания трех столбцов без необходимости писать три отдельные команды построения, как указано ниже

fig, ax = plt.subplots()

for cols in ['A', 'B', 'C']:
    df_b.plot('gamma%', cols, ax=ax)

enter image description here

0 голосов
/ 17 января 2019

На самом деле ваш метод в порядке, просто не говорите явно x='gamma%'. Вместо этого просто передайте имя столбца как 'gamma%', и оно должно работать

Пример:

plt.plot('gamma%', 'A', data=df_b)

Вот это прямо из документации :

Построение данных с меткой

Существует удобный способ построения объектов с помеченными данными (т.е. данные, которые могут быть доступны по индексу obj ['y']). Вместо того, чтобы дать данные в х и у, вы можете предоставить объект в параметре данных и просто дайте метки для х и у:

plot('xlabel', 'ylabel', data=obj)

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