Синтаксис для использования PyPlot в Джулии немного отличается от Python. Это результат того, что (в настоящее время) вы не можете использовать obj.f()
для доступа к методу (функции) f()
внутри объекта obj
в Julia, который PyPlot использует сильно.
Чтобы обойти это, obj.f()
в Python заменяется на obj[:f]()
в Julia; обратите внимание на :
.
Так ax.spines
в Python становится
ax[:spines]
в Джулию.
Как отмечено другим плакатом, вы должны сначала сделать ax = gca()
, чтобы сохранить текущий объект оси в переменной ax
.
Если вы делаете это на Джулии РЕПЛ или в записной книжке Jupyter, вы увидите
julia> ax = gca()
PyObject <matplotlib.axes._subplots.AxesSubplot object at 0x31f854550>
julia> ax[:spines]
Dict{Any,Any} with 4 entries:
"left" => PyObject <matplotlib.spines.Spine object at 0x31f854c10>
"bottom" => PyObject <matplotlib.spines.Spine object at 0x31f854f50>
"right" => PyObject <matplotlib.spines.Spine object at 0x31f854dd0>
"top" => PyObject <matplotlib.spines.Spine object at 0x31f86e110>
показывает, что ax[:spines]
является словарем. (Я ранее не знал об этом. Это преимущество наличия интерактивного сеанса - вы можете просто спросить у Джулии, что вам нужно знать. Это называется «интроспекция».)
После ответа Python, связанного с оригинальный вопрос, то вам необходимо заменить ax.spines['left'].set_position('zero')
в Python следующим в Джулии:
ax[:spines]["left"][:set_position]("zero")
Опять же, set_position
метод внутри объекта ax[:spines]["left"]
называется. Также обратите внимание, что строки в Julia должны иметь "
, а не '
.
Было бы полезно, если бы вы дали команду matplotlib вместе с эквивалентом Julia, который вы действительно пробовали, следуя описанию синтаксиса в документации PyCall.jl. –
Я начинаю здесь на 100% и понятия не имею, о чем вы говорите. То, что я сделал, приведено выше. Помогите! – lara
Я начал использовать PyPlot.axis ([xmin, xmax, ymin, ymax]) для этого: PyPlot.plot (spacerdata [: Width], spacerdata [: Curvature], ".") PyPlot.xlabel ("Ширина ") PyPlot.ylabel (« Кривизна ») PyPlot.title (« Сюжет ») PyPlot.grid (« on ») PyPlot.axis ([0,2,0,4]) – lara