我一直在使用 Genie Framework 和 Stipple 在 Julia 中开发一个应用程序,该应用程序的主要任务是实现 Sobel 和 Prewitt 运算符。我正在努力解决的问题是上传器组件。所以基本上我可以上传图像,单击按钮图像就会被转换,但是当我上传另一个图像并尝试输出它的转换版本时,我得到的输出仍然是旧图像。我一直在试图找到这个问题,我注意到 QUploader API 有一些方法可以帮助解决这个问题:reset()方法或removeUploadedFiles()方法,但我不知道如何调用/使用这些关于 Julia 语法的函数。有可用的解决方案吗?
const FILE_PATH = "public/sample.jpg"
const FINAL_PATH = "final.jpg"
#const IMGPATH = "demo.png"
model = Model |> init
on(model.process_s3) do _
model.imageurl[] = ""
@info "Working"
img = FileIO.load(FILE_PATH)
img_gray = Gray.(img)
@info img_gray
sobel_image = convert(Array{Float64}, img_gray)
lastImage = clamp01nan.(sobel(sobel_image, sobel3_kernel_x, sobel3_kernel_y))
save(joinpath(@__DIR__, "public", FINAL_PATH), lastImage)
model.imageurl[] = "/$FINAL_PATH#$(Base.time())" * string(rand())
@info model.imageurl[]
if (model.process_s3[])
model.process_s3[] = false
end …Run Code Online (Sandbox Code Playgroud) 我需要将 IPCC(风格)点画添加到全球地图中,如本文所示。不过,我想使用其中一个功能ggplot2来执行此操作。
这是数据和绘图的示例:
df=read.csv("/home/my_folder/test.csv")
library(ggplot2)
library(metR)
plot_df = ggplot() +
geom_contour_fill(data=df, aes(x=V1, y=V2, z = value)) +
scale_fill_steps2(name = "", low = "#0571b0", mid = '#ffffbf', high = '#ca0020')
print(plot_df)
Run Code Online (Sandbox Code Playgroud)
如何向此图像添加 IPCC 点画?
我尝试使用geom_point(),但点画太大并掩盖了背景颜色。
谢谢
编辑
根据@Allan 的回答,我确实可以添加点画,如下所示:
library(ggplot2)
library(ggpattern)
df=read.csv("~/...../test.csv")
df_stippl=df[c(10:47, 100:250, 500:510, 707:1000, 1508:1699, 2500:2600, 2680:2690, 3400:4300),]
plot_df = ggplot() +
geom_contour_fill(data=df, aes(x=V1, y=V2, z = value)) +
stat_contour_fill(data=df_stippl, aes(x=V1, y=V2, z = value), geom = "polygon_pattern",
pattern_fill = "black", pattern_size …Run Code Online (Sandbox Code Playgroud)