|
| 1 | +\begin{MintedVerbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}] |
| 2 | +\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{sklearn}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{datasets} |
| 3 | +\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{sklearn}\PYG{n+nn}{.}\PYG{n+nn}{svm}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{SVC}\PYG{p}{,} \PYG{n}{LinearSVC} |
| 4 | +\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{sklearn}\PYG{n+nn}{.}\PYG{n+nn}{linear\PYGZus{}model}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{SGDClassifier} |
| 5 | +\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{sklearn}\PYG{n+nn}{.}\PYG{n+nn}{preprocessing}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{StandardScaler} |
| 6 | +\PYG{k+kn}{import}\PYG{+w}{ }\PYG{n+nn}{matplotlib} |
| 7 | +\PYG{k+kn}{import}\PYG{+w}{ }\PYG{n+nn}{matplotlib}\PYG{n+nn}{.}\PYG{n+nn}{pyplot}\PYG{+w}{ }\PYG{k}{as}\PYG{+w}{ }\PYG{n+nn}{plt} |
| 8 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{rcParams}\PYG{p}{[}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{axes.labelsize}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{]} \PYG{o}{=} \PYG{l+m+mi}{14} |
| 9 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{rcParams}\PYG{p}{[}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{xtick.labelsize}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{]} \PYG{o}{=} \PYG{l+m+mi}{12} |
| 10 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{rcParams}\PYG{p}{[}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{ytick.labelsize}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{]} \PYG{o}{=} \PYG{l+m+mi}{12} |
| 11 | + |
| 12 | + |
| 13 | +\PYG{n}{iris} \PYG{o}{=} \PYG{n}{datasets}\PYG{o}{.}\PYG{n}{load\PYGZus{}iris}\PYG{p}{(}\PYG{p}{)} |
| 14 | +\PYG{n}{X} \PYG{o}{=} \PYG{n}{iris}\PYG{p}{[}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{data}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{]}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{p}{(}\PYG{l+m+mi}{2}\PYG{p}{,} \PYG{l+m+mi}{3}\PYG{p}{)}\PYG{p}{]} \PYG{c+c1}{\PYGZsh{} petal length, petal width} |
| 15 | +\PYG{n}{y} \PYG{o}{=} \PYG{n}{iris}\PYG{p}{[}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{target}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{]} |
| 16 | + |
| 17 | +\PYG{n}{setosa\PYGZus{}or\PYGZus{}versicolor} \PYG{o}{=} \PYG{p}{(}\PYG{n}{y} \PYG{o}{==} \PYG{l+m+mi}{0}\PYG{p}{)} \PYG{o}{|} \PYG{p}{(}\PYG{n}{y} \PYG{o}{==} \PYG{l+m+mi}{1}\PYG{p}{)} |
| 18 | +\PYG{n}{X} \PYG{o}{=} \PYG{n}{X}\PYG{p}{[}\PYG{n}{setosa\PYGZus{}or\PYGZus{}versicolor}\PYG{p}{]} |
| 19 | +\PYG{n}{y} \PYG{o}{=} \PYG{n}{y}\PYG{p}{[}\PYG{n}{setosa\PYGZus{}or\PYGZus{}versicolor}\PYG{p}{]} |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | +\PYG{n}{C} \PYG{o}{=} \PYG{l+m+mi}{5} |
| 24 | +\PYG{n}{alpha} \PYG{o}{=} \PYG{l+m+mi}{1} \PYG{o}{/} \PYG{p}{(}\PYG{n}{C} \PYG{o}{*} \PYG{n+nb}{len}\PYG{p}{(}\PYG{n}{X}\PYG{p}{)}\PYG{p}{)} |
| 25 | + |
| 26 | +\PYG{n}{lin\PYGZus{}clf} \PYG{o}{=} \PYG{n}{LinearSVC}\PYG{p}{(}\PYG{n}{loss}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{hinge}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{C}\PYG{o}{=}\PYG{n}{C}\PYG{p}{,} \PYG{n}{random\PYGZus{}state}\PYG{o}{=}\PYG{l+m+mi}{42}\PYG{p}{)} |
| 27 | +\PYG{n}{svm\PYGZus{}clf} \PYG{o}{=} \PYG{n}{SVC}\PYG{p}{(}\PYG{n}{kernel}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{linear}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{C}\PYG{o}{=}\PYG{n}{C}\PYG{p}{)} |
| 28 | +\PYG{n}{sgd\PYGZus{}clf} \PYG{o}{=} \PYG{n}{SGDClassifier}\PYG{p}{(}\PYG{n}{loss}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{hinge}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{learning\PYGZus{}rate}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{constant}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{eta0}\PYG{o}{=}\PYG{l+m+mf}{0.001}\PYG{p}{,} \PYG{n}{alpha}\PYG{o}{=}\PYG{n}{alpha}\PYG{p}{,} |
| 29 | + \PYG{n}{max\PYGZus{}iter}\PYG{o}{=}\PYG{l+m+mi}{100000}\PYG{p}{,} \PYG{n}{random\PYGZus{}state}\PYG{o}{=}\PYG{l+m+mi}{42}\PYG{p}{)} |
| 30 | + |
| 31 | +\PYG{n}{scaler} \PYG{o}{=} \PYG{n}{StandardScaler}\PYG{p}{(}\PYG{p}{)} |
| 32 | +\PYG{n}{X\PYGZus{}scaled} \PYG{o}{=} \PYG{n}{scaler}\PYG{o}{.}\PYG{n}{fit\PYGZus{}transform}\PYG{p}{(}\PYG{n}{X}\PYG{p}{)} |
| 33 | + |
| 34 | +\PYG{n}{lin\PYGZus{}clf}\PYG{o}{.}\PYG{n}{fit}\PYG{p}{(}\PYG{n}{X\PYGZus{}scaled}\PYG{p}{,} \PYG{n}{y}\PYG{p}{)} |
| 35 | +\PYG{n}{svm\PYGZus{}clf}\PYG{o}{.}\PYG{n}{fit}\PYG{p}{(}\PYG{n}{X\PYGZus{}scaled}\PYG{p}{,} \PYG{n}{y}\PYG{p}{)} |
| 36 | +\PYG{n}{sgd\PYGZus{}clf}\PYG{o}{.}\PYG{n}{fit}\PYG{p}{(}\PYG{n}{X\PYGZus{}scaled}\PYG{p}{,} \PYG{n}{y}\PYG{p}{)} |
| 37 | + |
| 38 | +\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{LinearSVC: }\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{lin\PYGZus{}clf}\PYG{o}{.}\PYG{n}{intercept\PYGZus{}}\PYG{p}{,} \PYG{n}{lin\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{)} |
| 39 | +\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{SVC: }\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{svm\PYGZus{}clf}\PYG{o}{.}\PYG{n}{intercept\PYGZus{}}\PYG{p}{,} \PYG{n}{svm\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{)} |
| 40 | +\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{SGDClassifier(alpha=}\PYG{l+s+si}{\PYGZob{}:.5f\PYGZcb{}}\PYG{l+s+s2}{):}\PYG{l+s+s2}{\PYGZdq{}}\PYG{o}{.}\PYG{n}{format}\PYG{p}{(}\PYG{n}{sgd\PYGZus{}clf}\PYG{o}{.}\PYG{n}{alpha}\PYG{p}{)}\PYG{p}{,} \PYG{n}{sgd\PYGZus{}clf}\PYG{o}{.}\PYG{n}{intercept\PYGZus{}}\PYG{p}{,} \PYG{n}{sgd\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{)} |
| 41 | + |
| 42 | +\PYG{c+c1}{\PYGZsh{} Compute the slope and bias of each decision boundary} |
| 43 | +\PYG{n}{w1} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{n}{lin\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{/}\PYG{n}{lin\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]} |
| 44 | +\PYG{n}{b1} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{n}{lin\PYGZus{}clf}\PYG{o}{.}\PYG{n}{intercept\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{/}\PYG{n}{lin\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]} |
| 45 | +\PYG{n}{w2} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{n}{svm\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{/}\PYG{n}{svm\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]} |
| 46 | +\PYG{n}{b2} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{n}{svm\PYGZus{}clf}\PYG{o}{.}\PYG{n}{intercept\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{/}\PYG{n}{svm\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]} |
| 47 | +\PYG{n}{w3} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{n}{sgd\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{/}\PYG{n}{sgd\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]} |
| 48 | +\PYG{n}{b3} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{n}{sgd\PYGZus{}clf}\PYG{o}{.}\PYG{n}{intercept\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{/}\PYG{n}{sgd\PYGZus{}clf}\PYG{o}{.}\PYG{n}{coef\PYGZus{}}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]} |
| 49 | + |
| 50 | +\PYG{c+c1}{\PYGZsh{} Transform the decision boundary lines back to the original scale} |
| 51 | +\PYG{n}{line1} \PYG{o}{=} \PYG{n}{scaler}\PYG{o}{.}\PYG{n}{inverse\PYGZus{}transform}\PYG{p}{(}\PYG{p}{[}\PYG{p}{[}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{10}\PYG{p}{,} \PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{10} \PYG{o}{*} \PYG{n}{w1} \PYG{o}{+} \PYG{n}{b1}\PYG{p}{]}\PYG{p}{,} \PYG{p}{[}\PYG{l+m+mi}{10}\PYG{p}{,} \PYG{l+m+mi}{10} \PYG{o}{*} \PYG{n}{w1} \PYG{o}{+} \PYG{n}{b1}\PYG{p}{]}\PYG{p}{]}\PYG{p}{)} |
| 52 | +\PYG{n}{line2} \PYG{o}{=} \PYG{n}{scaler}\PYG{o}{.}\PYG{n}{inverse\PYGZus{}transform}\PYG{p}{(}\PYG{p}{[}\PYG{p}{[}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{10}\PYG{p}{,} \PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{10} \PYG{o}{*} \PYG{n}{w2} \PYG{o}{+} \PYG{n}{b2}\PYG{p}{]}\PYG{p}{,} \PYG{p}{[}\PYG{l+m+mi}{10}\PYG{p}{,} \PYG{l+m+mi}{10} \PYG{o}{*} \PYG{n}{w2} \PYG{o}{+} \PYG{n}{b2}\PYG{p}{]}\PYG{p}{]}\PYG{p}{)} |
| 53 | +\PYG{n}{line3} \PYG{o}{=} \PYG{n}{scaler}\PYG{o}{.}\PYG{n}{inverse\PYGZus{}transform}\PYG{p}{(}\PYG{p}{[}\PYG{p}{[}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{10}\PYG{p}{,} \PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{10} \PYG{o}{*} \PYG{n}{w3} \PYG{o}{+} \PYG{n}{b3}\PYG{p}{]}\PYG{p}{,} \PYG{p}{[}\PYG{l+m+mi}{10}\PYG{p}{,} \PYG{l+m+mi}{10} \PYG{o}{*} \PYG{n}{w3} \PYG{o}{+} \PYG{n}{b3}\PYG{p}{]}\PYG{p}{]}\PYG{p}{)} |
| 54 | + |
| 55 | +\PYG{c+c1}{\PYGZsh{} Plot all three decision boundaries} |
| 56 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{figure}\PYG{p}{(}\PYG{n}{figsize}\PYG{o}{=}\PYG{p}{(}\PYG{l+m+mi}{11}\PYG{p}{,} \PYG{l+m+mi}{4}\PYG{p}{)}\PYG{p}{)} |
| 57 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{line1}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{]}\PYG{p}{,} \PYG{n}{line1}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{,} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{k:}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{label}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{LinearSVC}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} |
| 58 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{line2}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{]}\PYG{p}{,} \PYG{n}{line2}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{,} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{b\PYGZhy{}\PYGZhy{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{linewidth}\PYG{o}{=}\PYG{l+m+mi}{2}\PYG{p}{,} \PYG{n}{label}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{SVC}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} |
| 59 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{line3}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{]}\PYG{p}{,} \PYG{n}{line3}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{,} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{r\PYGZhy{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{label}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{SGDClassifier}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} |
| 60 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{X}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{]}\PYG{p}{[}\PYG{n}{y}\PYG{o}{==}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{,} \PYG{n}{X}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{[}\PYG{n}{y}\PYG{o}{==}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{,} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{bs}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} \PYG{c+c1}{\PYGZsh{} label=\PYGZdq{}Iris\PYGZhy{}Versicolor\PYGZdq{}} |
| 61 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{X}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{]}\PYG{p}{[}\PYG{n}{y}\PYG{o}{==}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{p}{,} \PYG{n}{X}\PYG{p}{[}\PYG{p}{:}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{[}\PYG{n}{y}\PYG{o}{==}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{p}{,} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{yo}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} \PYG{c+c1}{\PYGZsh{} label=\PYGZdq{}Iris\PYGZhy{}Setosa\PYGZdq{}} |
| 62 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{xlabel}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Petal length}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{fontsize}\PYG{o}{=}\PYG{l+m+mi}{14}\PYG{p}{)} |
| 63 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{ylabel}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Petal width}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{fontsize}\PYG{o}{=}\PYG{l+m+mi}{14}\PYG{p}{)} |
| 64 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{legend}\PYG{p}{(}\PYG{n}{loc}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{upper center}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{n}{fontsize}\PYG{o}{=}\PYG{l+m+mi}{14}\PYG{p}{)} |
| 65 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{axis}\PYG{p}{(}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mf}{5.5}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{2}\PYG{p}{]}\PYG{p}{)} |
| 66 | + |
| 67 | +\PYG{n}{plt}\PYG{o}{.}\PYG{n}{show}\PYG{p}{(}\PYG{p}{)} |
| 68 | + |
| 69 | + |
| 70 | + |
| 71 | + |
| 72 | +\end{MintedVerbatim} |
0 commit comments