Установить строковые значения на оси Matplotlib X - PullRequest
0 голосов
/ 26 октября 2018

Используя приведенный ниже код, я пытаюсь отобразить значения оси x в виде строк с помощью matplotlib:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

fig = plt.figure()
plt.figure(figsize=(20,10))
plt.xticks(fontsize=24)
plt.yticks(fontsize=24)

plt.plot( 'x', 'y', data=pd.DataFrame({'x': np.array(['a' , 'b' , 'c']) , 'y': np.array([1,2,3]) }), marker=None, color='blue')


plt.show()

Эта ошибка возвращается:

ValueError: could not convert string to float: 'c'

Похоже, что matplotlib выводит осьзначение в виде строки.Как это изменить?

Я пытался установить тип, но это не исправляет:

astype(str)

1 Ответ

0 голосов
/ 26 октября 2018

Я могу воспроизвести ошибку в python2 с matplotlib==1.5.3.


Если вы используете python3

Обновление matplotlib до новейшей версии может решить эту проблему:

pip3 install matplotlib --upgrade

Если вы используете python2

Поскольку новейший matplotlib не поддерживает 2.x, вы можете обновить его до matplotlib==2.1:

pip2 install matplotlib==2.1

Если вы не хотите обновлять

Попробуйте это:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

plt.figure(figsize=(20,10))
plt.yticks(fontsize=24)
x = np.array(['a' , 'b' , 'c'])
xn = range(len(x))
plt.xticks(xn, x, fontsize=24)

plt.plot(xn, 'y', data=pd.DataFrame({'y': np.array([1,2,3]) }), marker=None, color='blue')
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...