我有一个包含日期和股票价格的 Excel 文件。我使用 DataFrames.jl 将此数据读入数据帧
\nusing DataFrames, StatsPlots, Indicators\n\ndf = DataFrame(XLSX.readtable("Demo-sv.xlsx", "Blad3")...)\nRun Code Online (Sandbox Code Playgroud)\n这非常有效,我在这里打印了前 6 个条目。
\n6\xc3\x972 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 Date \xe2\x94\x82 Closeprice \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x82 Any \xe2\x94\x82 Any \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 1 \xe2\x94\x82 2019-05-03 \xe2\x94\x82 169.96 \xe2\x94\x82\n\xe2\x94\x82 2 \xe2\x94\x82 2019-05-02 \xe2\x94\x82 168.06 \xe2\x94\x82\n\xe2\x94\x82 3 \xe2\x94\x82 2019-04-30 \xe2\x94\x82 165.58 \xe2\x94\x82\n\xe2\x94\x82 4 \xe2\x94\x82 2019-04-29 \xe2\x94\x82 166.4 \xe2\x94\x82\n\xe2\x94\x82 5 \xe2\x94\x82 2019-04-26 \xe2\x94\x82 167.76 \xe2\x94\x82\n\xe2\x94\x82 6 \xe2\x94\x82 2019-04-25 \xe2\x94\x82 167.46 \xe2\x94\x82\nRun Code Online (Sandbox Code Playgroud)\n然后我使用 StatsPlots.jl 绘制这些数据@df df plot(df.Date, df.Closeprice)并得到一个漂亮的绘图。
问题是当我想用 Indicators.jl 绘制简单的移动平均线时 …
我刚刚开始学习Julia,Quarto但是当我在 Quarto 的 Julia 块中运行以下代码时:
---\ntitle: "Julia in Quarto"\neditor: visual\nformat: html\n---\n\n```{julia}\n# generating vectors\n# x-axis\nx = 1:10\n \n# y-axis\ny = rand(10)\n \n# simple plotting\nplot(x, y)\n```\nRun Code Online (Sandbox Code Playgroud)\n它返回:
\nError in loadNamespace(x) : there is no package called \xe2\x80\x98JuliaCall\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n即使添加以下内容,错误仍然出现:
\nusing Pkg\nPkg.add("JuliaCall")\nRun Code Online (Sandbox Code Playgroud)\n到代码块。有谁知道如何在 Quarto 中运行以下 Julia 代码?
\n请注意:我使用 Rstudio
\n我试图用库SimpleHypergraphs计算一个小例子。但是,我按照安装说明进行操作,出现此错误:
ERROR: "HyperNetX is not installed in Python used by this Julia. Install HyperNetX and reload SimpleHypergraphs.jl"
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
using PyCall
using Conda
Conda.runconda(`install matplotlib --yes`)
Conda.runconda(`install networkx --yes`)
run(`$(PyCall.python) -m pip install hypernetx`)
using SimpleHypergraphs
h = Hypergraph{Float64}(5,4)
h[1:3,1] .= 1.5
h[3,4] = 2.5
h[2,3] = 3.5
h[4,3:4] .= 4.5
h[5,4] = 5.5
h[5,2] = 6.5
draw(h, HyperNetX; width=5, height=5)
Run Code Online (Sandbox Code Playgroud)
我不明白为什么会出现这个错误,因为 hypernetx 安装得很好。
如何使 Julia 图中 x 轴和 y 轴的线条更粗?有没有一种简单的方法可以实现这一目标?
微量元素:
using Plots
Nx, Ny = 101,101
x = LinRange(0, 100, Nx)
y = LinRange(0, 100, Ny)
foo(x,y; x0=50, y0=50, sigma =1) = exp(- ((x-x0)^2 + (y-y0)^2)/(2*sigma^2) )
NA = [CartesianIndex()] # for "newaxis"
Z = foo.(x[:,NA], y[NA,:], sigma=10);
hm = heatmap(x, y, Z, xlabel="x", ylabel="y", c=cgrad(:Blues_9), clim=(0,1))
plot(hm, tickfontsize=10, labelfontsize=14)
Run Code Online (Sandbox Code Playgroud)
到目前为止我发现的帖子表明这是不可能的:
还这样吗?
我的情节的实际代码要长得多。我不想在不同的绘图库中重写所有内容。
我正在寻找一个执行以下渲染的函数:
\nf("2") = 2\xc2\xb2\nf("15") = 2\xc2\xb9\xe2\x81\xb5\nRun Code Online (Sandbox Code Playgroud)\n我尝试过f(s) = "2\\^($s)",但这似乎不是一个有效的指数,因为我无法按 TAB 键。
所以这里有一些异常值,以点的形式呈现,我想为每个有异常值的职位制作一些像这样的抖动:
有什么办法可以用 Vegalite 包做到这一点吗?
有人可以给我一些建议吗?
提前致谢!
我正在使用 StatsPlots 包来执行基本绘图。
df = DataFrame(A = 1:10, B =rand(10))
@df df plot(:A, :B)
Run Code Online (Sandbox Code Playgroud)
无论如何我可以将此绘图图像作为文件保存到我的机器(Ubuntu)中吗?
我正在编写一个 Julia 程序,它迭代地运行另一个函数,并给出两组结果。我想绘制这些结果,现在我正在做的是for分别绘制每个循环的结果,这为下面的示例提供了大约 20 个图:这样说:
for i in 1:10
x1,y1 = first_function(a,b,c)
plot(x1,y1)
end
for j in 1:10
x2,y2 = second_function(a,b,c)
plot(x2,y2)
end
Run Code Online (Sandbox Code Playgroud)
我尝试使用该plot!()命令,但这给了我在同一个图上的所有 20 个图,这是我不想要的。我想做的是将每次迭代的两个函数的结果绘制在同一个图上。例如,我想要 10 个图,每次迭代一个,其中每个图都有 和 的first_function()结果second_function。我尝试了以下方法:
for j in 1:10
x1,y1 = first_function(a,b,c)
x2,y2 = second_function(a,b,c)
plot!(x1,y1)
plot!(x2,y2)
end
Run Code Online (Sandbox Code Playgroud)
然而,这似乎也不起作用。
编辑:根据我收到的答案,我发现以下方法可以解决问题:
for i in 1:10
x1,y1 = first_function(a,b,c)
x2,y2 = second_function(a,b,c)
plot(x1,y1)
plot!(x2,y2)
end
Run Code Online (Sandbox Code Playgroud)
这会在循环的每次迭代结束时生成一个新的图,这就是我想要的。
假设我在 Julia 中定义了以下数组:
M=[[1,1],[2,4],[3,9],[4,16],[5,25],[6,36],[7,49],[8,64],[9,81],[10,100],[11,121],[12,144]]
Run Code Online (Sandbox Code Playgroud)
显然,每个元素都[x,y]遵循二次法则 $y=x^2$,因此当我使用命令绘制它时,我希望得到一个抛物线形状plot(M)。
但我得到的是这样的东西:

我做错了什么,我应该怎么做才能得到我想要的结果——抛物线形状?
这可能与this或this相关。但是,建议的解决方案都不适合我。
\n我正在使用带有 Julia 扩展的 VSCode,并且在 Jupyter 笔记本中运行所有内容。我的第一个单元格如下所示。
\nusing Distributions\nusing StatsBase\nusing CSV\nusing DataFrames\nusing HypothesisTests\nusing Plots\nusing GLM\nusing StatsPlots\nRun Code Online (Sandbox Code Playgroud)\n执行单元会产生以下错误。
\nailed to precompile StatsPlots [f3b207a7-027a-5e70-b257-86293d7955fd] to /home/david/.julia/compiled/v1.7/StatsPlots/jl_27z7QU.\n\nStacktrace:\n [1] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, ignore_loaded_modules::Bool)\n @ Base ./loading.jl:1466\n [2] compilecache(pkg::Base.PkgId, path::String)\n @ Base ./loading.jl:1410\n [3] _require(pkg::Base.PkgId)\n @ Base ./loading.jl:1120\n [4] require(uuidkey::Base.PkgId)\n @ Base ./loading.jl:1013\n [5] require(into::Module, mod::Symbol)\n @ Base ./loading.jl:997\n [6] eval\n @ ./boot.jl:373 [inlined]\n [7] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)\n @ Base ./loading.jl:1196\n [8] #invokelatest#2\n @ ./essentials.jl:716 [inlined]\n …Run Code Online (Sandbox Code Playgroud) 我有以下代码
using Plots
function test()::nothing
A::Array{Float64,1} = rand(Float64,100)
plot(A)
end
Run Code Online (Sandbox Code Playgroud)
我像这样在朱莉娅中运行
julia> include("main.jl")
test (generic function with 1 method)
julia> test()
ERROR: MethodError: First argument to `convert` must be a Type, got nothing
Stacktrace:
[1] test() at /path/to/main.jl:85
[2] top-level scope at REPL[2]:1
Run Code Online (Sandbox Code Playgroud)
为什么我会收到错误消息First argument to convert must be a Type, got nothing?