Plots具有强大的可视化功能,同时也具有丰富的背景选项,但是似乎无法正常显示中文标题、中文图例和中文坐标等,感觉中文兼容性始终是个bug.
- 尝试了一下,在 pyplot、plotly 和 gr 后端中,貌似只有 plotly 对中文支持不错 ↓
using Plots
plotly() # plotly backends
plot(1:10, rand(10), title="标题", xlabel="x 轴", ylabel="y 轴",
label="图例", xtickfont = font(15, "Courier"))
- 但是 plotly 在使用数组 label 作图例的时候有问题 ↓
pyplot 后端 ↓
gr 后端支持数组图例 ↓
【Julia 0.6 环境,Plots: 0.16.0】
谁去给Plots他们提个issue?关注中文支持的。
非常感谢您的回复,总算解决了部分问题,但是这个结果就比较尴尬了~~~
曾经因为中文显示问题差点放弃Julia,但是其他优点使俺念念不忘!!
可能人家不鸟~~
修复issue需要时间的,要等等
利用plotly在使用数组label的时候,将其中的逗号去掉试试。
如下:
plotly()
plot(rand(10,2), label = [“aa” “bb”])
好久以前的坟,今天挖一把,主要是pyplot和gr后端。
首先需要知道Plots里面设定字体有这样几个选项
titlefont, tickfont, legendfont, guidefont, legendtitlefont.
-
在pyplot里面用中文比较简单,只要在matplotlibrc里面加入默认中文字体就好了,或者将上述每个字体都设置好。
font.sans-serif : Microsoft YaHei
using Plots pyplot() plot(rand(10), title="标题", xlabel="x 轴", ylabel="y 轴", label="图例",titlefont="SimSun",tickfont="Times New Roman",legendfont="SimHei",guidefont="KaiTi")
-
对于gr,由于gr默认的编码是Latin-1,所以需要先给他调成utf-8。但是测试发现gr的字体好像不太好调。。反正像pyplot那样直接调是不行的,默认的只有宋体,有点丑了。。
ENV["GKS_ENCODING"] = "utf-8" using Plots plot(1:10, rand(10), title="标题", xlabel="x 轴", ylabel="y 轴", label="图例")
楼上正解。空格是1x2的矩阵,逗号是向量。
请问,关于xlabel和ylabel的(默认居中)位置可以修改吗?
自从换更到Julia 1.6 之后,可视化好像就不能显示中文,即使用:ENV[“GKS_ENCODING”] = “utf-8”
也不能解决,哪为大佬能解决,请指点一下!
Julia 1.6 的中文画图测试
版本信息
julia> versioninfo()
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
(@v1.6) pkg> st
Status `C:\Users\woclass\.julia\environments\v1.6\Project.toml`
[28b8d3ca] GR v0.58.1
[8314cec4] PGFPlotsX v1.3.2
[58dd65bb] Plotly v0.4.0
[a03496cd] PlotlyBase v0.5.4
[f0f68f2c] PlotlyJS v0.14.1
[91a5bcdd] Plots v1.21.3
[d330b81b] PyPlot v2.9.0
PlotlyJS
plotly()
plot(rand(10,2), label = ["折线① 🌊" "折线② 🌋"],
title="标题 鱼群数量🐟", xlabel="x 轴", ylabel="y 轴",
xtickfont = font(15, "Courier"))
- 图像可交互
GR
ENV["GKS_ENCODING"] = "utf-8"
using Plots
gr()
default(fontfamily="SimHei")
plot(rand(10,2), label = ["折线① 🌊" "折线② 🌋"],
title="标题 鱼群数量🐟", xlabel="x 轴", ylabel="y 轴")
PyPlot
pyplot()
rcParams = PyPlot.PyDict(PyPlot.matplotlib."rcParams")
fss = rcParams["font.sans-serif"]
rcParams["font.sans-serif"] = ["SimHei", "Segoe UI Emoji", fss...]
rcParams["font.family"] = "sans-serif"
plot(rand(10,2), label = ["折线① 🌊" "折线② 🌋"],
title="标题 鱼群数量🐟", xlabel="x 轴", ylabel="y 轴")
设置了 emoji 字体还是不行,有待深究。
可是问题依旧,我用的是ATOM+JULIA,如果用jupytor 则没有上述问题!
谢谢woclass的回答,请问您用的是什么IDE
多谢提醒,我再试试
到了julia 1.70,GR中文又废了