我对朱莉娅来说是全新的。我在Julia中使用PyPlot包,我只是试图将我的x和y轴原点分别设置为0和0。目前,它只是根据我绘制的点的值来选择原点的位置。
plot(x1,y1,".")
xlabel("X1")
ylabel("Y1")
title("First Line")
grid("on")
我尝试了以下但是它不起作用。 change matplotlib axis settings
答案 0 :(得分:2)
在Julia中使用PyPlot与Python中的matplotlib不同。您正在寻找在轴上设置限制的Julia等效物。我发现this useful github repo可能对您有用。
以下是如何向y轴添加自定义限制:
using PyPlot
x1 = rand(50, 1) .* 30 .+ 50
y1 = rand(50, 1) .* 30 .+ 100
plot(x1, y1)
# get the current axis argument of the plot
ax = gca()
# add new limits from 0 - 100
ax[:set_ylim]([0,100])
答案 1 :(得分:2)
在Julia中使用PyPlot的语法与Python略有不同。
这是因为(目前)您不能使用obj.f()
来访问Julia中对象f()
内的方法(函数)obj
,而PyPlot使用的很多。
为了解决这个问题,Python中的obj.f()
被Julia中的obj[:f]()
取代;请注意:
。
因此Python中的ax.spines
变为
ax[:spines]
在朱莉娅。
正如另一张海报所述,您必须先ax = gca()
将当前轴对象存储在变量ax
中。
如果您在Julia REPL或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答案,您需要在Julia中用以下内容替换Python中的ax.spines['left'].set_position('zero')
:
ax[:spines]["left"][:set_position]("zero")
同样,调用对象set_position
内的ax[:spines]["left"]
方法。另请注意,Julia中的字符串必须为"
,而不是'
。