如何使用Julia中的时间数据获得更好的Plots.jl xaxis刻度标签?
我想查看如何使用Julia中的时间数据获得更好的Plots.jl xaxis刻度标签?,plot,time,julia,visualization,plots.jl,Plot,Time,Julia,Visualization,Plots.jl,我想查看[00:00:00,02:00:00,04:00:00,06:00:00]或类似的xtick标签。pyplot和GR后端给出了类似的结果。我可以使用任何支持左yaxis和右yaxis的后端 默认图 我的尝试 上次尝试设置xticks已关闭,但我仍然无法显示最后一个勾号。有趣的是,我将范围的最后一个值设置为什么并不重要xticks=Time(0):Hour(2):Time(10)生成相同的图像。这将起作用: plot(df.Time, df.Data, xlims =
[00:00:00,02:00:00,04:00:00,06:00:00]
或类似的xtick标签。pyplot和GR后端给出了类似的结果。我可以使用任何支持左yaxis和右yaxis的后端
默认图
我的尝试
上次尝试设置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)
)
我觉得这在没有日期的情况下应该是可行的
最近,添加了对
Date
和DateTime
()的支持,但不支持Time
或TimePeriod
您是否尝试过xticks=Time(0):Hour(2):Time(6)
?(Hour
是一个持续时间)或xlims=(时间(0),时间(6))
@MarcMush谢谢你的提示!我更新了问题,纳入了你的建议。xticks
选项可能已经足够好了,但我将保留这个问题,看看是否有更好的方法。进一步调查后,xticks
解决方案不会以任何方式改变图形的外观,只会改变轴<代码>时间(6)不显示,因为它不在图表中。同样,如果我使用xticks=Time(2):Hour(2):Time(4)
,唯一的效果就是删除00:00:00
勾号标签。我更喜欢一种方法,它还可以重新缩放图形。
julia> plot(df.Time, df.Data, lims = :round)
julia> plot(df.Time, df.Data, ticks = 4)
julia> plot(df.Time, df.Data, lims = :round, ticks = 4)
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))
plot(df.Time, df.Data,
xlims = (Dates.value(Time(0)), Dates.value(Time(6))),
xticks = Time(0):Hour(2):Time(6)
)