You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia GLMakie极坐标曲面图颜色偏暗及伪影问题求助

问题解决方法

1. 消除GLMakie中的亮线伪影

GLMakie的PolarAxis与surface!结合时,极坐标转换的三角化逻辑可能导致局部拉伸伪影。可通过两种方式解决:

  • 切换至CairoMakie(已验证有效),适合静态图片输出场景。
  • 若需保留GLMakie,将极坐标数据转换为笛卡尔坐标后,使用普通Axis绘制,绕开PolarAxis的直接映射:
    # 转换为笛卡尔坐标
    X = [R[ir] * cos(THETA[itheta]) for itheta in 1:ntheta, ir in 1:nr]
    Y = [R[ir] * sin(THETA[itheta]) for itheta in 1:ntheta, ir in 1:nr]
    # 使用普通Axis替代PolarAxis
    ax1 = Axis(fig[1,1], aspect=DataAspect())
    p = surface!(ax1, X, Y, MOL_DENSITY, colormap=:hot)
    

2. 修复颜色偏暗问题

颜色偏暗是因为Makie的surface!默认开启光照效果,而色条直接基于原始数据值映射,不受光照影响。只需关闭光照即可让曲面颜色与色条完全匹配:

p = surface!(ax1, THETA, R, MOL_DENSITY, colormap=:hot, lighting=NoLighting())

完整修正代码

GLMakie版本(消除伪影+颜色匹配)

using GLMakie
rmin=1.0
rmax=200.0
nr=75
ntheta=75
R=Float64[rmin*(rmax/rmin)^((i-1.0)/(nr-1.0)) for i=1:nr]
THETA=Float64[(pi/2-pi/2*(i-1.0)/(ntheta-1.0)) for i=1:ntheta]
MOL_DENSITY=Array{Float64,2}(undef,ntheta,nr)
for itheta=1:ntheta
  for ir=1:nr
    MOL_DENSITY[itheta,ir]=log(1.0/(R[ir]*(THETA[itheta]-pi/4+0.1)^2.0))
  end
end
# 转换为笛卡尔坐标
X = [R[ir] * cos(THETA[itheta]) for itheta in 1:ntheta, ir in 1:nr]
Y = [R[ir] * sin(THETA[itheta]) for itheta in 1:ntheta, ir in 1:nr]

fig=Figure(fontsize=22,size=(700,600))
ax1=Axis(fig[1,1], aspect=DataAspect())
p=surface!(ax1, X, Y, MOL_DENSITY, colormap=:hot, lighting=NoLighting())
Colorbar(fig[1,2],p)
save("test_fixed.png",fig)

CairoMakie版本(保留PolarAxis+颜色匹配)

using CairoMakie
# 数据部分与原代码一致
rmin=1.0
rmax=200.0
nr=75
ntheta=75
R=Float64[rmin*(rmax/rmin)^((i-1.0)/(nr-1.0)) for i=1:nr]
THETA=Float64[(pi/2-pi/2*(i-1.0)/(ntheta-1.0)) for i=1:ntheta]
MOL_DENSITY=Array{Float64,2}(undef,ntheta,nr)
for itheta=1:ntheta
  for ir=1:nr
    MOL_DENSITY[itheta,ir]=log(1.0/(R[ir]*(THETA[itheta]-pi/4+0.1)^2.0))
  end
end

fig=Figure(fontsize=22,size=(700,600))
ax1=PolarAxis(fig[1,1])
thetalims!(ax1,0,pi/2)
rlims!(ax1,0,rmax)
p=surface!(ax1,THETA,R,MOL_DENSITY,colormap=:hot, lighting=NoLighting())
Colorbar(fig[1,2],p)
save("test_cairo_fixed.png",fig)

内容的提问来源于stack exchange,提问作者Pierre Marchand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 11:25:00