Hallo, ich habe heute zufällig Was muss ich enstellen, dass (1) Werte (2) In der 1. Zeile (3) Nachfolgende Nullen, erst ab der 2. Spalte, ausgeschrieben werden Ich möchte (optisch, wie inhaltlich) diese Tabelle erzeugen (allerdings nur auf 4 Stellen genau): Mein Versuch bisher: Open in Online-Editor
\documentclass[border=2pt, varwidth]{standalone} %\documentclass[]{article} %\usepackage{pgfplots} \usepackage{pgfplotstable} \usepackage{amsmath, amssymb, amsfonts} \usepackage{filecontents} \documentclass[border=2pt, varwidth]{standalone} %\documentclass[]{article} %\usepackage{pgfplots} \usepackage{pgfplotstable, booktabs} \usepackage{amsmath, amssymb, amsfonts} \usepackage{filecontents} \begin{document} \begin{filecontents}{n5.txt} 0 0.5905 0.3277 0.2373 0.1681 0.0778 0.0313 1 0.9185 0.7373 0.6328 0.5282 0.3370 0.1875 2 0.9914 0.9421 0.8965 0.8369 0.6826 0.5000 3 0.9995 0.9933 0.9844 0.9692 0.9130 0.8125 4 1.0000 0.9997 0.9990 0.9976 0.9898 0.9688 \end{filecontents} \pgfplotstabletypeset[ %fixed, zerofill, % Nullen anzeigen precision=4, /pgf/number format/.cd, use comma, % Kommas als Zahlentrennzeichen %1000 sep={}, %/pgfplots/table/header=false, ]{n5.txt} \pgfmathprintnumber{12345.6789} \\ \footnotesize{\pgfmathprintnumber{12345.6789}} \\ \scriptsize{\pgfmathprintnumber{12345.6789}} \\ \tiny{\pgfmathprintnumber{12345.6789}} \\ \end{document} gefragt 12 Jan '16, 16:50 cis |
Das folgende sieht zwar nicht ganz aus wie im Bild aber es kommt glaube ich ganz nah hin. Ich konnte leider einen Buchstaben im Binomialkoeffizient nicht richtig identifizieren, ich hab jetzt einfach Open in Online-Editor
\documentclass{article} \usepackage{pgfplotstable} \usepackage{amsmath}% \binom \usepackage{colortbl}% \rowcolor, \cellcolor \usepackage{diagbox}% \diagbox \usepackage{filecontents} \begin{document} \begin{filecontents}{n5.txt} 0 0.5905 0.3277 0.2373 0.1681 0.0778 0.0313 1 0.9185 0.7373 0.6328 0.5282 0.3370 0.1875 2 0.9914 0.9421 0.8965 0.8369 0.6826 0.5000 3 0.9995 0.9933 0.9844 0.9692 0.9130 0.8125 4 1.0000 0.9997 0.9990 0.9976 0.9898 0.9688 \end{filecontents} \pgfplotstableset{ discard if equal/.style = { preproc cell content/.code={ \ifdim##1pt=#1pt \pgfkeyssetvalue{/pgfplots/table/@cell content}{} \fi } }, color cells/.style = { postproc cell content/.code={ \pgfkeyssetvalue{/pgfplots/table/@cell content}{\cellcolor{#1}##1} } } } \pgfplotstabletypeset[ fixed zerofill, precision=4, every head row/.style = { before row={ \hline \rowcolor{pink} & \multicolumn{6}{c|}{% $\displaystyle\sum_{v=0}^k \binom{n}{v} p^v q^{n-v} \;,\quad q = 1-p$% } \\ \rowcolor{pink} }, after row=\hline }, every last row/.style = { after row=\hline }, columns/0/.style = { column name={\diagbox{$k$}{$p$}}, precision=0, column type={|c|}, color cells={pink} }, columns/1/.style = { column name={$0.1$}, discard if equal={1.0} }, columns/2/.style = { column name={$0.2$}, }, columns/3/.style = { column name={$0.3$}, }, columns/4/.style = { column name={$0.4$}, }, columns/5/.style = { column name={$0.5$}, }, columns/6/.style = { column name={$0.6$}, column type={c|} } ]{n5.txt} \end{document} beantwortet 12 Jan '16, 21:54 Henri
(15 Jan '16, 05:41)
cis
Muss man die Färbung wirklich so kompliziert mit
(15 Jan '16, 18:50)
cis
|
Spielerei mit Open in Online-Editor
\documentclass{article} \usepackage{luacode} \usepackage{amsmath} \usepackage{diagbox} \usepackage{xcolor} \usepackage{colortbl} \begin{luacode*} function factorial(n) if (n == 0) then return 1 else return n * factorial(n - 1) end end function choose(n,k) return factorial(n)/(factorial(k)*factorial(n-k)) end function cis(p,n,k) local q = 1-p local S = 0 for v=0,k do S = S + choose(n,v) * p^v * q^(n-v) end return S end function make_table() for n=5,10,5 do tex.sprint("\\cline{2-8}" .. n) for k=0,n do tex.sprint("&" .. k) for p=0.1,0.5,0.1 do local cell = cis(p,n,k) tex.sprint("&" .. string.format("%.4f",cell)) end tex.sprint("&" .. n-k .. "\\\\") end end end \end{luacode*} \begin{document} \newcommand\emptycell[1]{\multicolumn{1}{#1}{\cellcolor{white}}} \begin{tabular}{c|>{\columncolor{pink}}c|ccccc|>{\columncolor{lightgray}}c|} \cline{2-7} \rowcolor{pink} \emptycell{c|} & \multicolumn{6}{c|}{% $\displaystyle\sum_{v=0}^k \binom{n}{v} p^v q^{n-v} \;,\quad q = 1-p$% } & \emptycell{c} \\ \rowcolor{pink} \cellcolor{white} n & \diagbox{$k$}{$p$} & 0.1 & 0.2 & 0.3 & 0.4 & 0.5 & \emptycell{c} \\ \directlua{make_table()} \cline{2-8} \emptycell{c} & \emptycell{c|} & 0.9 & 0.8 & 0.7 & 0.6 & 0.5 & \diagbox{$p$}{$k$} \\ \rowcolor{lightgray} \emptycell{c} & \emptycell{c|} & \multicolumn{6}{c|}{% $\displaystyle\sum_{v=k}^n \binom{n}{v} p^v q^{n-v} \;,\quad q = 1-p$% } \\ \cline{3-8} \end{tabular} \end{document} beantwortet 12 Jan '16, 22:41 Henri sehr gut. Muss man nur noch ein kleines bisschen am Layout feilen (die Horizontalen sollten bis in die n-Spalte ragen; entsprechend auch die k-Blöcke trennen). Wegen LUA: Ich habe die Werte mit Mathematica berechnet (ist m.E. bei solchen Sachen sinnvoll); das geht vermutlich nicht mit TeX? Oder gibt es etwas Entsprechendes?
(13 Jan '16, 01:40)
cis
Ah schade, das wird ja gar nimmer mit pgfplotstabel gemacht - ich wollte mir hier einiges abschauen.
(13 Jan '16, 01:57)
cis
@cis: @Henri hat doch gezeigt, wie das mit TeX geht. Wenn Du meist, ob es auch mit
(13 Jan '16, 08:00)
saputello
Ich meinte das so: Gibt es eine Möglichkeit,
(13 Jan '16, 20:39)
cis
@cis: Das wäre dann aber eine ganz neue Frage, daher nur kurz: Bei
(14 Jan '16, 07:50)
saputello
|
Hier nochmal die LuaTeX Antwort, aber komplett in LaTeX. Benötigt Open in Online-Editor
\documentclass{article} \usepackage{xparse} \usepackage{amsmath} \usepackage{diagbox} \usepackage{xcolor} \usepackage{colortbl} \usepackage{siunitx} \ExplSyntaxOn \cs_new:Npn \int_factorial:n #1 % computes #1! { \int_compare:nTF { (#1) == 0 } { 1 } { \int_eval:n { (#1) * \int_factorial:n { ((#1) - 1) } } } } \cs_new:Npn \int_choose:nn #1#2 % computes (#1 \choose #2) { \int_eval:n { \int_factorial:n { #1 } / ( \int_factorial:n { #2 } * \int_factorial:n { #1-#2 } ) } } \cs_new:Npn \int_pow:nn #1#2 % computes #1^#2 { \int_compare:nTF { (#2) == 0 } { 1 } { \int_eval:n { 1 \prg_replicate:nn { #2 } { * #1 } } } } \cs_new_protected:Npn \cis_sum:nnn #1#2#3 % p = #1, n = #2, k = #3 { \fp_zero:N \l_tmpa_fp \int_step_inline:nnnn { 0 } { 1 } { #3 } { \fp_add:Nn \l_tmpa_fp { \int_choose:nn { #2 } { ##1 } * (#1)^(##1) * (1 - #1)^(#2 - ##1) } } \num{\fp_use:N \l_tmpa_fp} } \fp_gzero_new:N \g__cis_p_fp \int_gzero_new:N \g__cis_k_int \int_gzero_new:N \g__cis_n_int \cs_new_protected:Npn \cis_make_table: { \int_step_function:nnnN { 5 } { 5 } { 10 } \cis_table_nloop:n } \cs_new_protected:Npn \cis_table_nloop:n #1 { \int_gset:Nn \g__cis_n_int { #1 } \int_use:N \g__cis_n_int \int_step_function:nnnN { 0 } { 1 } { #1 } \cis_table_kloop:n } \cs_new_protected:Npn \cis_table_kloop:n #1 { \int_gset:Nn \g__cis_k_int { #1 } & \int_use:N \g__cis_k_int \fp_gzero:N \g__cis_p_fp \fp_do_while:nn { \g__cis_p_fp < 0.5 } { \fp_gadd:Nn \g__cis_p_fp { 0.1 } & \cis_sum:nnn { \g__cis_p_fp } { \g__cis_n_int } { \g__cis_k_int } } & \int_eval:n { \g__cis_n_int - \g__cis_k_int } \bool_lazy_and:nnTF { \int_compare_p:n { \g__cis_k_int == \g__cis_n_int } } { \int_compare_p:n { \g__cis_k_int == 5 } } { \\[1em] } { \\ } } \NewDocumentCommand \maketable { } { \cis_make_table: } \ExplSyntaxOff \begin{document} \newcommand\emptycell[1]{\multicolumn{1}{#1}{\cellcolor{white}}} \sisetup{ round-mode=places, round-precision=4, round-integer-to-decimal } \begin{tabular}{c|>{\columncolor{pink}}c|ccccc|>{\columncolor{lightgray}}c|} \cline{2-7} \rowcolor{pink} \emptycell{c|} & \multicolumn{6}{c|}{% $\displaystyle\sum_{v=0}^k \binom{n}{v} p^v q^{n-v} \;,\quad q = 1-p$% } & \emptycell{c} \\ \rowcolor{pink} \cellcolor{white} n & \diagbox{$k$}{$p$} & 0.1 & 0.2 & 0.3 & 0.4 & 0.5 & \emptycell{c} \\ \cline{1-8} \maketable \cline{2-8} \rowcolor{lightgray} \emptycell{c} & \emptycell{c|} & 0.9 & 0.8 & 0.7 & 0.6 & 0.5 & \diagbox{$p$}{$k$} \\ \rowcolor{lightgray} \emptycell{c} & \emptycell{c|} & \multicolumn{6}{c|}{% $\displaystyle\sum_{v=k}^n \binom{n}{v} p^v q^{n-v} \;,\quad q = 1-p$% } \\ \cline{3-8} \end{tabular} \end{document} beantwortet 13 Jan '16, 10:18 Henri |
Man kann die Ausgabe der Tabelle über diverse Optionen konfigurieren, die in der Anleitung dokumentiert sind. Wenn der Kopf in die Wertedatei geschrieben wird, wird er automatisch erkannt, wenn er einen nicht nummerischen Wert enthält. Man kann mit Die Formatierung der Zahlen mit fester Nachkommastellenzahl, die ggf. mit Nullen aufgefüllt werden geschieht über Für die Ausblendung von Open in Online-Editor
\documentclass[border=2pt, varwidth]{standalone} %\documentclass[]{article} %\usepackage{pgfplots} \usepackage{pgfplotstable} \usepackage{amsmath, amssymb, amsfonts} \usepackage{filecontents} \begin{document} \begin{filecontents}{n5.txt} n 0.1 0.2 0.25 0.3 0.4 0.5 0 0.5905 0.3277 0.2373 0.1681 0.0778 0.0313 1 0.9185 0.7373 0.6328 0.5282 0.3370 0.1875 2 0.9914 0.9421 0.8965 0.8369 0.6826 0.5000 3 0.9995 0.9933 0.9844 0.9692 0.9130 0.8125 4 1.0000 0.9997 0.9990 0.9976 0.9898 0.9688 \end{filecontents} \pgfplotstabletypeset[header=has colnames, columns/n/.style={ int detect, column name={} }, typeset cell/.code={ \def\cmpta{#1}\def\cmptb{\pgfutilensuremath{1.0000}}% \ifnum\pgfplotstablecol=\pgfplotstablecols \ifx\cmpta\cmptb \pgfkeyssetvalue{/pgfplots/table/@cell content}{ \\}% \else \pgfkeyssetvalue{/pgfplots/table/@cell content}{#1\\}% \fi \else \ifx\cmpta\cmptb \pgfkeyssetvalue{/pgfplots/table/@cell content}{ &}% \else \pgfkeyssetvalue{/pgfplots/table/@cell content}{#1&}% \fi \fi }, fixed zerofill,precision=4 ]{n5.txt} \end{document} Man kann übriges auch Spaltentypen festlegen, Linien und Farben einfügen u. v. m. Zu vielem davon gibt es Beispiele in der Anleitung. beantwortet 12 Jan '16, 21:32 saputello |
Upps, mit ist ganz entgangen, dass es schon Antworten gehagelt hat, diese muss jetzt erstmal studieren.