Я просто столкнулся с проблемой, когда понял, что строю строковые данные, и мои графики не отражают данные, с которыми я имел дело. Похоже, что matplotlib.pyplot не выдает ошибку, когда ему передается строковое значение, и идет дальше и строит график чего-то, но что именно он рисует? Он показывает числа для шкалы, но это просто список строковых значений без учета числовых отношений. Как он решает, где построить точки?
Вот фрагмент кода для иллюстрации моего вопроса и сюжет ниже.
import matplotlib.pyplot as plt
# Define data arrays
x = range(10)
data = [4.73, 5.01, 5.29, 6.75, 4.48, 4.49, 5.44, 5.53, 4.89, 4.59]
strData = ['4.73', '5.01', '5.29', '6.75', '4.48', '4.49', '5.44', '5.53', '4.89', '4.59']
# Open figure for plotting
fig = plt.figure()
# Define axis for plotting
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()
# Plot data
lns1 = ax1.plot(x, data, '-r', label = 'Float')
# Plot string data
lns2 = ax2.plot(x, strData, 'ob', label = 'String')
# Compile labels
lns = lns1+lns2
labs = [l.get_label() for l in lns]
# Plot the legend
fig.legend(lns, labs, loc='upper right', fontsize= 9, prop={'size':9}, numpoints=1, framealpha=1)
# Show figure
plt.show()