Hi,
ich hab mal ne frage. Und zwar habe ich meine Abbildungen jetzt mit Python erzeugt und speicher diese als PDF und füge sie dann in Latex ein. Das mach ich mit '\includegraphics{}'. Die größe lege ich dann fest mit 'width = 0.6textwidth' in Latex. Dabei verändert sich aber immer die Schriftgröße und auch die Schrift ist anderst. Gibt es eine Möglichkeit das zu verhindern. Also das wenn ich in Python Schriftgröße 10pt eingestellt habe das dann auch in Latex obwohl 'width = 0.6textwidth' ist, die Schriftgöße 10pt ist? Ich hoffe ihr verstehst was ich meine...
Python und Latex
@Lienz20013: Du bindest in Dein Dokument ein Bild ein. Ein Bild weiß nichts von irgendeiner Schriftgröße. Also entweder das Bild schon in der passenden Größe erzeugen, oder das Bild aus LaTeX-Bordmitteln zusammensetzen.
<korinthenkacker>Das PDF weiss schon etwas von Schriftgrössen, aber wenn das skaliert wird, dann werden auch die Texte mitskaliert, sprich man kann nicht den Text von der Skalierung ausnehmen.</korinthenkacker>
-
- User
- Beiträge: 88
- Registriert: Freitag 26. September 2014, 14:42
Ja, genau. Also hier gibt es so eine art Lösung die versteh ich nicht ganz bin noch neuling in Python.
http://bkanuka.com/articles/native-latex-plots/
könnt ihr damit was anfangen?
http://bkanuka.com/articles/native-latex-plots/
könnt ihr damit was anfangen?
-
- User
- Beiträge: 88
- Registriert: Freitag 26. September 2014, 14:42
Also damit meine ich kann das jemand in ein verständliches Minimalbeispiel umwandeln? Besonderst den unteren Teil versteh ich nicht in dem er sein Plot erzeugt
@Lienz20013: Das in dem Blogbeitrag ist doch das Minimalbeispiel. Wo genau liegt das Problem? Bekommst Du irgendwo eine Fehlermeldung? Wenn ja welche?
-
- User
- Beiträge: 88
- Registriert: Freitag 26. September 2014, 14:42
Also ich habe jetzt alles hin bekommen außer die Umlaute wie ich die schreiben kann
Also wegen dem ä gehts nicht. Kann jemand helfen? Und ich möchte das ä dann auch in Latex üvberführen.
Code: Alles auswählen
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
mpl.use('pgf')
def figsize(scale):
fig_width_pt = 418.25543 # Get this from LaTeX using \the\textwidth
inches_per_pt = 1.0/72.27 # Convert pt to inch
golden_mean = (np.sqrt(5.0)-1.0)/2.0 # Aesthetic ratio (you could change this)
fig_width = fig_width_pt*inches_per_pt*scale # width in inches
fig_height = fig_width*golden_mean # height in inches
fig_size = [fig_width,fig_height]
return fig_size
pgf_with_latex = { # setup matplotlib to use latex for output
"pgf.texsystem": "pdflatex", # change this if using xetex or lautex
"text.usetex": True, # use LaTeX to write all text
"font.family": "serif",
"font.serif": ['palatino'], # blank entries should cause plots to inherit fonts from the document
"font.sans-serif": ['palatino'],
"font.monospace": ['palatino'],
"axes.labelsize": 10, # LaTeX default is 10pt font.
"text.fontsize": 10,
"legend.fontsize": 8, # Make the legend/label fonts a little smaller
"xtick.labelsize": 8,
"ytick.labelsize": 8,
"figure.figsize": figsize(0.9),} # default fig size of 0.9 textwidth
#"pgf.preamble": [
#r"\usepackage[utf8x]{inputenc}", # use utf8 fonts becasue your computer can handle it :)
#r"\usepackage[T1]{fontenc}", # plots will be generated using this preamble
#]
#}
mpl.rcParams.update(pgf_with_latex)
# I make my own newfig and savefig functions
fig = plt.figure(figsize=figsize(1))
ax = fig.add_subplot(111)
plt.plot([1,2,3,4])
ax.set_xlabel('X Label ä')
ax.set_ylabel('EMA')
plt.savefig('ema.pgf')
plt.savefig('ema.pdf')
@Lienz20013: Was wird denn statt dem "ä" gedruckt? Du mußt das selbe Encoding schreiben, wie es LaTeX dann auch lesen will. In Deinem Fall hast Du für LaTeX UTF8 eingestellt. Welches Encoding hast Du für die Python-Datei gewählt?
-
- User
- Beiträge: 88
- Registriert: Freitag 26. September 2014, 14:42
Auch utf 8 oder?
und meine Latex Datei sieht so aus
Code: Alles auswählen
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 24 10:54:12 2015
@author: -
"""
#===========================================================================
#===========================================================================
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
mpl.use('pgf')
def figsize(scale):
fig_width_pt = 418.25543 # Get this from LaTeX using \the\textwidth
inches_per_pt = 1.0/72.27 # Convert pt to inch
golden_mean = (np.sqrt(5.0)-1.0)/2.0 # Aesthetic ratio (you could change this)
fig_width = fig_width_pt*inches_per_pt*scale # width in inches
fig_height = fig_width*golden_mean # height in inches
fig_size = [fig_width,fig_height]
return fig_size
pgf_with_latex = { # setup matplotlib to use latex for output
"pgf.texsystem": "pdflatex", # change this if using xetex or lautex
"text.usetex": True, # use LaTeX to write all text
"font.family": "serif",
"font.serif": ['palatino'], # blank entries should cause plots to inherit fonts from the document
"font.sans-serif": ['palatino'],
"font.monospace": ['palatino'],
"axes.labelsize": 10, # LaTeX default is 10pt font.
"text.fontsize": 10,
"legend.fontsize": 8, # Make the legend/label fonts a little smaller
"xtick.labelsize": 8,
"ytick.labelsize": 8,
"figure.figsize": figsize(0.9), # default fig size of 0.9 textwidth
"pgf.preamble": [
r"\usepackage[utf8x]{inputenc}", # use utf8 fonts becasue your computer can handle it :)
r"\usepackage[T1]{fontenc}", # plots will be generated using this preamble
]
}
mpl.rcParams.update(pgf_with_latex)
#Direct input
mpl.rcParams['text.latex.preamble']=[r"\usepackage{palatino}"]
#Options
params = {'text.usetex' : True,
'font.size' : 11,
'font.family' : 'palatino',
'text.latex.unicode': True,
}
mpl.rcParams.update(params)
# I make my own newfig and savefig functions
fig = plt.figure(figsize=figsize(1.6))
ax = fig.add_subplot(111)
plt.plot([1,2,3,4])
ax.set_xlabel('X Label \xe4')
ax.set_ylabel('EMA')
plt.savefig('ema.pgf')
plt.savefig('ema.pdf')
Code: Alles auswählen
\documentclass[listof=toc, a4paper, 12pt, headsepline,openright, cleardoublepage=
empty, abstracton]{scrreprt}
\usepackage{pgf}
\usepackage{lscape}
\begin{document}
\begin{landscape}
\begin{figure}[b]
\caption{A simple EMA plot.\label{fig:ema1}}
\centering
\input{ema.pgf}
\end{figure}
\end{landscape}
\end{document}
@Lienz20013: Ob das UTF8 ist hängt davon ab welche Python-Version das ist. Falls Python 2, dann definitiv nicht.
-
- User
- Beiträge: 88
- Registriert: Freitag 26. September 2014, 14:42
Ich arbeite mit Spyder und mit der Python Version 2.7
-
- User
- Beiträge: 88
- Registriert: Freitag 26. September 2014, 14:42
So klappts erstmal
Mit Latex Code
Code: Alles auswählen
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 24 10:54:12 2015
@author: corny
"""
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
mpl.use('pgf')
def figsize(scale):
fig_width_pt = 418.25543 # Get this from LaTeX using \the\textwidth
inches_per_pt = 1.0/72.27 # Convert pt to inch
golden_mean = (np.sqrt(5.0)-1.0)/2.0 # Aesthetic ratio (you could change this)
fig_width = fig_width_pt*inches_per_pt*scale # width in inches
fig_height = fig_width*golden_mean # height in inches
fig_size = [fig_width,fig_height]
return fig_size
pgf_with_latex = { # setup matplotlib to use latex for output
"pgf.texsystem": "pdflatex", # change this if using xetex or lautex
"text.usetex": True, # use LaTeX to write all text
'text.latex.unicode': True,
"font.family": 'palatino',
"font.serif": ['palatino'], # blank entries should cause plots to inherit fonts from the document
"font.sans-serif": ['palatino'],
"font.monospace": ['palatino'],
"axes.labelsize": 10, # LaTeX default is 10pt font.
"text.fontsize": 10,
"legend.fontsize": 8, # Make the legend/label fonts a little smaller
"xtick.labelsize": 8,
"ytick.labelsize": 8,
"figure.figsize": figsize(1), # default fig size of 0.9 textwidth
"pgf.preamble": [
r"\usepackage[utf8x]{inputenc}", # use utf8 fonts becasue your computer can handle it :)
r"\usepackage[T1]{fontenc}", # plots will be generated using this preamble
]
}
mpl.rcParams.update(pgf_with_latex)
# I make my own newfig and savefig functions
fig = plt.figure(figsize=figsize(1.6))
ax = fig.add_subplot(111)
plt.plot([1,2,3,4])
ax.set_xlabel(u'X Label ä')
ax.set_ylabel('EMA')
plt.savefig('ema.pgf')
plt.savefig('ema.pdf')
Code: Alles auswählen
\documentclass[listof=toc, a4paper, 12pt, headsepline,openright, cleardoublepage=
empty, abstracton]{scrreprt}
\usepackage{pgf}
\usepackage{lscape}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
\begin{landscape}
\begin{figure}[b]
\caption{A simple EMA plot.\label{fig:ema1}}
\centering
\input{ema.pgf}
\end{figure}
\end{landscape}
\end{document}