Проблема с отображением десятичных знаков по оси X - Matplotlib - PullRequest
0 голосов
/ 18 октября 2019

У меня есть эта проблема с этим графиком,

Ниже кода:

axex=[0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0]
axey=[0.15686275, 0.28808446, 0.53242836, 1.        , 1.        ,
       1.        , 1.        ]

import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
#x = [0.00001,0.001,0.01,0.1,0.5,1,5]
plt.figure(figsize=(10,12))
plt.plot(axex,axey ,'o-', linestyle='--', label='Results')
plt.title("Show Test")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.legend(loc='best')
plt.show()

Что происходит, значения «axex» и строка неправильно отображаются вграфик, он не отображается в масштабе axex (0,001, 0,01, 0,1, 1,0, 10,0, 100,0, 1000,0)

Если мы запустим график без axex на графике, мы получим правильный линейный график, ношкала оси X отображается неправильно.

Как мы можем это исправить?

1 Ответ

1 голос
/ 18 октября 2019

Если x и y представляют собой два списка числовых значений, то plot(x,y) отобразит все координаты (x[0], y[0]), (x[1], y[1]), ... и т. Д., И по умолчанию будет отображаться толькоиспользовать линейные оси. plot(x,y) будет не изменять масштаб осей в зависимости от числовых значений данных, хранящихся в x и y.

Одним из способов получения логарифмической шкалы являетсяиспользовать pyplot.xscale('log') и / или эквивалентно для шкалы y, yscale('log').

import matplotlib.pyplot as plt

axex=[0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0]
axey=[0.15686275, 0.28808446, 0.53242836, 1., 1., 1., 1.]

plt.figure()
plt.plot(axex, axey, linestyle='--', label='Results')
plt.xscale('log') # Set log scale on X-axis
plt.title("Show Test")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()

enter image description here

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