plot: Changing the default font for plots is unintuitive and/or not possible
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Bug
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- go
- Domínio
- data-visualization
Direção de pesquisa
Comece rastreando plot.DefaultFont e o tratamento de fontes em torno de vg.FontDirs e vg.MakeFont(), depois inspecione o mapeamento de tipos de letra do renderizador SVG. Reproduza o exemplo Arial e acompanhe as falhas pelo cálculo da extensão da fonte e pela saída SVG. O trabalho estará concluído quando uma fonte padrão configurada não causar mais um panic e tipos de letra não suportados produzirem um resultado claro.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
What are you trying to do?
Render a plot to SVG with a certain font as a default for title and axis
What did you do?
plot.DefaultFont = font.Font{Typeface: "Arial"}
p := plot.New()
err := plotutil.AddLinePoints(p, ...)
...
err = p.Save(4*vg.Inch, 4*vg.Inch, "plot.svg")
...
What did you expect to happen?
That all labels in the plot use the Arial font.
What actually happened?
Rending the plot panic'ed, because Font objects are used unchecked in places using Extent().
It is not clear at all, what fonts can even be used for plot.DefaultFont and that it needs to happen before calling plot.New(). Digging through the code reveals there was a built-in map, which is currently being removed.
It is possible to load a custom font such as Arial, by extending the vg.FontDirs global. In addition, the default font cache needs to be manually extended with a mapping for "Arial" to a font object loaded via vg.MakeFont().
However, this will still fail later in the SVG renderer, because it has a hard-coded mapping of typefaces to CSS style strings. This mapping cannot currently be extended. If a font is not part of this mapping, it will at least throw a proper error.
What version of Go and Gonum/plot are you using?
From go.sum, it looks like I am using v0.9.0.
Does this issue reproduce with the current master?
No idea.
- Linguagem predominante
- Go
- Estrelas
- 3k
- Forks
- 202
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de gonum/plot
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 52/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 32/100
-
plot/plotter: NewHist(binPoints) panic when a small negative number is usedTalvez já em andamento @SashaMIT assumiu há 14 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
Issues semelhantes
-
fix(handlers): explicitly set Content-Type header in static Index handlerTalvez já em andamento @kage-zero assumiu hoje. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 1 dia
-
Quick Open: restore dependency-directory exclusions in filesystem fallbackTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
eugenioenko/ttt#1206 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
open-policy-agent/opa#9426 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
rorkai/App-Store-Connect-CLI#3192 ·
Mantenedores costumam responder em até 1 dia
-
t:urlDecodeUni does not map U+3002 and U+FF61 to a dot, unlike ModSecurityTalvez já em andamento @fzipi assumiu hoje. Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia