Figura MATLAB como problemas de metarquivo avançado do Windows

0

Estou tendo um problema com uma figura que estou tentando criar no MATLAB. Deixe-me fornecer-lhe algumas referências e antecedentes antes de entrar nos detalhes.

Estou no processo de terminar um relatório para a escola e estou tentando garantir que meus resultados sejam exibidos de forma clara e profissional. Eu não posso usar LaTeX (isso é corrigido, acredite em mim eu prefiro usá-lo) e por isso estou escrevendo no MS Word.

Em geral, descobri que usar o MATLAB para criar os gráficos dos meus dados gerou resultados muito bons. Especificamente, eu encontrei os arquivos .emf para dar as melhores imagens (são imagens vetoriais, tanto quanto eu posso dizer, elas não pixelam / degradam quando ampliadas). Eu estou usando o MATLAB 2016b.

No MS Word, estou fazendo o seguinte:

  1. Inserir
  2. Texto
  3. Peças rápidas
  4. Campos
  5. IncludePicture
  6. Em seguida, vinculo o arquivo à caixa de diálogo e também marque as caixas "redimensionar horizontal e verticalmente da fonte".

No MATLAB, faço o seguinte:

  1. Criar figura usando plot
  2. Use o manipulador de figura (por exemplo, MyFig.Property = Something ) para definir PaperUnits para polegadas
  3. Use a alça da figura PaperPosition = [ 0 0 6 4 ] (corresponde a uma figura de 6 polegadas de largura por 4 polegadas de altura
  4. Finalmente, uso a função saveas para salvar a figura como um arquivo meta (metarquivo do Windows aprimorado, .emf)

O resultado final é exatamente o que eu quero e aparece no documento do MS Word como uma imagem vetorial (conforme descrito acima, mantém a qualidade da imagem do vetor ao salvar o documento do Word como um PDF). Eu posso atualizar facilmente os gráficos no documento do Word, atualizando todos os campos. Eu aprecio esse fluxo de trabalho / automação e gostaria de mantê-lo, se possível.

O meu problema surge quando tento aplicar este processo a um dos meus gráficos, o que requer dois eixos y. O que eu faço diferente nesta figura do resto é o seguinte:

  1. Use yyaxis left e right para criar os dois eixos y
  2. Use a propriedade YAxis de gca para alinhar as marcas dos dois eixos y
  3. A partir daí, aplico o mesmo processo do MATLAB para salvar a figura, conforme descrito acima.

A questão é que o arquivo .emf salvo NÃO é uma imagem vetorial (diferente dos outros). Parece claramente pior e pixeliza quando eu zoom in. Se eu remover o segundo eixo y ele funciona bem novamente.

Alguém tem alguma ideia sobre o eixo y sobre o que pode estar causando isso e como posso resolvê-lo? Eu tentei o seguinte sem sucesso:

  • variando o tamanho a partir das 6x4 polegadas
  • desmarque as caixas "redimensionar horizontalmente e verticalmente no MS Word"
  • variando o tamanho da fonte da figura (diminuindo)

Estou indo para salvar meus números corretamente ou há uma maneira melhor de fazer isso?

Existe alguma informação adicional que eu possa fornecer para ajudar a resolver isso?

    
por Nukesub 01.11.2017 / 00:26

1 resposta

0

Eu resolvi o problema.

O problema parecia ser que, quando eu adicionei um segundo eixo ao gráfico, o MATLAB padronizou um renderizador diferente para a figura. Especificamente, aquele que cria uma imagem de bitmap, portanto, a qualidade do lixo do produto final. Eu não tenho idéia de por que ele fez isso, mas o gatilho para fazer isso (como padrão para o processador correto para todos os gráficos com um único eixo y) foi o segundo eixo y.

Corrigi o problema simplesmente forçando a figura específica a renderizar usando o renderizador apropriado (chamado de "pintores", veja abaixo).

myfig.Renderer = 'painters';

    
por 03.11.2017 / 23:44

Tags