gpt4 book ai didi

plot - 如何使用 Julia 中的时间数据获得更好的 Plots.jl xaxis 刻度标签?

转载 作者:行者123 更新时间:2023-12-04 15:10:58 29 4
gpt4 key购买 nike

我想看[00:00:00, 02:00:00, 04:00:00, 06:00:00]或类似于 xtick 标签。 pyplot 和 GR 后端给出了相似的结果。我可以使用任何支持左右 yaxis 的后端。
默认图

using DataFrames, Dates, Plots
gr(linewidth=3, markersize=4, titlefont=18, legendfont=12, guidefont=18, tickfont=14, legend=:outertopright)
df = DataFrame()
df.Time = ["0:05:02", "1:05:23", "2:05:34", "4:05:42", "5:36:01"]
df.Data = [0.0, 1.0, 0.5, 0.4, 0.1]
df.Time = Time.(df.Time, DateFormat("H:M:S"))
plot(df.Time, df.Data)
default.png
我的尝试
julia> plot(df.Time, df.Data, lims = :round)
lims.png
julia> plot(df.Time, df.Data, ticks = 4)
ticks.png
julia> plot(df.Time, df.Data, lims = :round, ticks = 4)
lims_ticks.png
julia> plot(df.Time, df.Data, xlims = (Time(0), Time(6)))
ERROR: MethodError: no method matching Float64(::Time)
Closest candidates are:
Float64(::UInt32) at float.jl:66
Float64(::Int128) at float.jl:94
Float64(::Float16) at float.jl:256
...
Stacktrace:
[1] (::RecipesPipeline.var"#7#8"{Symbol})(::Time) at C:\Users\nboyer.AIP\.julia\packages\RecipesPipeline\uPBKQ\src\utils.jl:201
[2] optimal_ticks_and_labels(::Plots.Subplot{Plots.GRBackend}, ::Plots.Axis, ::Nothing) at C:\Users\nboyer.AIP\.julia\packages\Plots\vsE7b\src\axes.jl:167
julia> plot(df.Time, df.Data, xticks = Time(0):Hour(2):Time(6))
xticks.png
最后一次尝试设置 xticks很接近,但我仍然无法显示最后一个刻度。有趣的是,我将范围的最后一个值设置为什么并不重要。 xticks = Time(0):Hour(2):Time(10)产生相同的图像。

最佳答案

这将工作:

plot(df.Time, df.Data, 
xlims = (Dates.value(Time(0)), Dates.value(Time(6))),
xticks = Time(0):Hour(2):Time(6)
)
我觉得没有 Dates.value 这应该是可能的.
最近,增加了对 Date 的支持和 DateTime ( https://github.com/JuliaPlots/Plots.jl/pull/3180 ),但不是 TimeTimePeriod

关于plot - 如何使用 Julia 中的时间数据获得更好的 Plots.jl xaxis 刻度标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65206014/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com