Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Andere Softwarepakete » Sage / sagetex: Wie Sage in einer pgfplotstable verwenden?
Autor
Kein bestimmter Bereich Sage / sagetex: Wie Sage in einer pgfplotstable verwenden?
Ex_Senior
  Themenstart: 2017-07-23

Hallo! Ich habe mit Sage eine Funktion definiert. Wie kann ich diese in einer pgfplotstable anwenden? Hinweis: Falls kein Sage installiert ist, kann [https://cocalc.com/][1] (SageMathCloud) verwendet werden (dort 'New LaTeX-Document'...). \sourceon latex \documentclass[12pt]{article} \usepackage[T1]{fontenc} \usepackage[margin=.25in]{geometry} %\usepackage{kpfonts} %Changing the default fonts \usepackage{sagetex} \usepackage{pgfplotstable} \pgfplotsset{compat=1.12} \begin{document} \pagestyle{empty} Test: \begin{sagesilent} sigma = 1 VerteilungsFunktion = RealDistribution('gaussian', sigma) phi = VerteilungsFunktion.cum_distribution_function \end{sagesilent} \newcommand{\PHI}[1]{$\varphi(#1) = \sage{round(phi(#1), ndigits=5)}$} \noindent \PHI{0.62} \\ \sage{phi(0.62)} \bigskip % TUT NICHT! ========== \pgfplotstabletypeset[sci zerofill]{ x 0.1 0.2 1 \sage{phi(1.1)} 1.2 2 2.1 2.2 } \bigskip \end{document} \sourceoff


   Profil
schnitzel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 26.02.2009
Mitteilungen: 220
  Beitrag No.1, eingetragen 2017-07-24

Tag, ehrlich gesagt keine Ahnung warum das nicht funktioniert. Am Anfang ist es immer leichter, wenn man zuerst die Daten erst generiert und in ein separates file abspeichert und dann noch mal einliest. Da hat man dann schonmal einen Überblick obs halbwegs funktioniert. Da du ja sowieso diese Tabelle machen möchtest: \sourceon Latex \documentclass[11pt]{scrartcl} \usepackage{selinput} \SelectInputMappings{adieresis={ä}, germandbls={ß}} \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[margin=.25in]{geometry} \usepackage{amsmath, amssymb, amsfonts}% \usepackage{sagetex} \usepackage{pgfplotstable} \pgfplotsset{compat=1.12} % Führende Nullen ausblenden ============= % http://texwelt.de/wissen/fragen/15994/wie-beseitige-ich-die-fuhrenden-nullen-in-einer-pgfplotstable \makeatletter \newif\ifpgfmathprintnumberskipzeroperiodandaddphantom \def\pgfmathprintnumber@fixed@styleDEFAULT@impl@period#1.#2\pgfmathfloat@EOI{% \ifpgfmathprintnumberskipzeroperiodandaddphantom \pgfmathprintnumberskipzeroperiodtrue \fi \ifpgfmathprintnumberskipzeroperiod \def\pgfmathfloat@loc@TMPb{#1}% \ifx\pgfmathfloatparsenumber@tok@ZERO\pgfmathfloat@loc@TMPb \else \def\pgfmathfloat@loc@TMPc{-0}% \ifx\pgfmathfloat@loc@TMPc\pgfmathfloat@loc@TMPb \def\pgfmathresult{-}% \else \def\pgfmathfloat@loc@TMPc{+0}% \ifx\pgfmathfloat@loc@TMPc\pgfmathfloat@loc@TMPb \def\pgfmathresult{+}% \else \pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod#1\pgfmathfloat@EOI\pgfmathfloat@EOI\pgfmathfloat@EOI \fi \fi \fi \else \pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod#1\pgfmathfloat@EOI\pgfmathfloat@EOI\pgfmathfloat@EOI \fi \ifpgfmathprintnumber@thousand@sep@in@fractional \let\pgfmathresultfractional\pgfutil@empty% \pgfmathprintnumber@thousand@sep@in@fractional#2MMMM\@@ \else \def\pgfmathresultfractional{#2}% \fi \begingroup \toks0=\expandafter{\pgfmathresult}% \toks1=\expandafter{\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP@MARK}% \ifpgfmathprintnumberskipzeroperiodandaddphantom \toks2=\expandafter{\expandafter\phantom\expandafter{\expandafter0\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP}} \else \toks2=\expandafter{\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP}% \fi \toks3=\expandafter{\pgfmathresultfractional}% \xdef\pgfmathfloat@glob@TMP{\the\toks0 \the\toks1 \the\toks2 \the\toks3 }% \endgroup \let\pgfmathresult=\pgfmathfloat@glob@TMP }% \makeatother \pgfplotstableset{ skip 0. for all but first/.style = { postproc cell content/.code={ \ifnum\pgfplotstablecol>0 \global\pgfmathprintnumberskipzeroperiodandaddphantomtrue \fi } }, } % ============================== % Tabellenkopf ========================= \def\TabellenKopfText{% \textbf{Verteilungsfunktion der Standardnormalverteilung } }% \def\TabellenKopfFormel{% $\displaystyle\varphi(t) = \frac{1}{\sqrt{2\pi}} \int\limits_{-\infty}^t e^{-\frac{1}{2} x^2} \mathrm{d}x$ }% % -------------------------- \newcommand\TabellenKopf{% \multicolumn{11}{l}{\TabellenKopfText\TabellenKopfFormel} %& \multicolumn{6}{c}{aa} \\[4ex] }% % ============================== \pagestyle{empty} \begin{document} \begin{sagesilent} import pandas as pd import numpy as np a = np.arange(0,4.1,0.1) b = np.arange(0,0.1,0.01) X,Y = np.meshgrid(b,a) def phi(x): return round(RealDistribution('gaussian',1).cum_distribution_function(x),ndigits=5) df = pd.DataFrame( data = X+Y ,index = a, columns = b) df2 = df.applymap(phi) #speichern der Daten with open('./FertigeTabellenwerte.txt', 'w') as file: file.write(df2.to_csv(header='', sep=' ')) \end{sagesilent} \pgfplotstableread{FertigeTabellenwerte.txt}{\WertetabelleNormalverteilung} \pgfplotstabletypeset[ % Allgemeine Einstellungen fixed zerofill, fixed, % Kommazahlen angeben precision=5, % Rundung der Tabelleneinträge % Führende Nullen ausblenden (bis auf erste) skip 0. for all but first, % -------------------------- % Erste Spalte definieren columns/0/.style = { column name={$t$}, precision=1, column type={c|}, }, % Übrige Spalten benennen columns/1/.style = {column name={$0$}}, columns/2/.style = {column name={$1$}}, columns/3/.style = {column name={$2$},}, columns/4/.style = {column name={$3$},}, columns/5/.style = {column name={$4$},}, columns/6/.style = {column name={$5$},}, columns/7/.style = {column name={$6$},}, columns/8/.style = {column name={$7$},}, columns/9/.style = {column name={$8$},}, columns/10/.style = {column name={$9$},}, % -------------------------- % Tabellenkopf definieren every head row/.style = { before row={\TabellenKopf}, after row=\hline\\[-1ex], }, % -------------------------- % Leerzeile vor jeder Ganzzahl every nth row={10}{before row=[1ex]}, %every row no 0/.style ={before row=[1.0ex]}, % -------------------------- ]{\WertetabelleNormalverteilung}%\loadedtable \end{document} \sourceoff Das kann beim ersten Durchlauf einen Fehler geben, da die Tabelle ja noch nicht existiert. Entweder man legt dann per Hand ein Dokument an oder man packt den ganzen Kram selbst in eine sage-Umgebung. Gruß


   Profil
Ex_Senior
  Beitrag No.2, vom Themenstarter, eingetragen 2017-07-24

\quoteon(2017-07-24 06:17 - schnitzel in Beitrag No. 1) a. ehrlich gesagt keine Ahnung warum das nicht funktioniert. b. Am Anfang ist es immer leichter, wenn man zuerst die Daten erst generiert und in ein separates file abspeichert und dann noch mal einliest. \quoteoff a. Ich vermute, dass für pgfplotstable erstmal die Rechenwerte umständlich in Saveboxen oder so stehen müssen. Da SageTeX scheints nicht so oft verwendet wird, kam auch bei TexWelt noch keine AW. b. Ja gut, ich wollte halt da generell rumrechnen in pgfplotstable's etc.


   Profil
Ex_Senior hat die Antworten auf ihre/seine Frage gesehen.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2022 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]