2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00

added more random data;added parameters to multivariate-random.py

This commit is contained in:
Martin Thoma 2014-08-24 19:01:10 -04:00
parent 80bfd7b9ca
commit 67feb2890d
3 changed files with 6044 additions and 4032 deletions

View file

@ -5,7 +5,7 @@
\usepackage{pgfplots} \usepackage{pgfplots}
\pgfplotsset{compat=1.10} \pgfplotsset{compat=1.10}
\usepackage{tikz} \usepackage{tikz}
\usetikzlibrary{arrows,positioning} \usetikzlibrary{arrows, positioning}
\usepackage{helvet} \usepackage{helvet}
\usepackage[eulergreek]{sansmath} \usepackage[eulergreek]{sansmath}
@ -48,7 +48,7 @@
y label style={at={(axis description cs:-0.05,0.5)}, y label style={at={(axis description cs:-0.05,0.5)},
anchor=south, anchor=south,
rotate=90, rotate=90,
font=\boldmath\sansmath\sffamily\Large}, font=\boldmath\sansmath\sffamily\Large}
] ]
\addplot[ \addplot[
scatter, scatter,
@ -65,9 +65,9 @@ scatter,
only marks, only marks,
point meta=explicit symbolic, point meta=explicit symbolic,
scatter/classes={ scatter/classes={
b={mark=*,mark size=3pt,red!30!white,draw=black},% b={mark=*,mark size=4pt,red!30!white,draw=black},%
c={mark=*,mark size=3pt,cyan!30!white,draw=black},% c={mark=*,mark size=4pt,cyan!30!white,draw=black},%
a={mark=*,mark size=3pt,green!70!black,draw=black}}, a={mark=*,mark size=4pt,green!70!black,draw=black,pin=135:{\color{black}$(65, 35)$},label={(65, 35)}] {}}},
] ]
table[meta=label] { table[meta=label] {
x y label x y label

File diff suppressed because it is too large Load diff

View file

@ -4,37 +4,49 @@ import matplotlib.pyplot as plt
import numpy import numpy
import csv import csv
cov = [[25, 20], [20, 25]] # diagonal covariance, points lie on x or y-axis
meanI = [70, 40] def main(n):
datapointsI = 2000 cov = [[25, 20], [20, 25]]
meanII = [60, 20] meanI = [70, 40]
datapointsII = 2000 datapointsI = n
dataI = numpy.random.multivariate_normal(meanI, cov, datapointsI).T meanII = [60, 20]
x, y = dataI datapointsII = n
plt.plot(x, y, 'x')
dataII = numpy.random.multivariate_normal(meanII, cov, datapointsII).T dataI = numpy.random.multivariate_normal(meanI, cov, datapointsI).T
x, y = dataII x, y = dataI
plt.plot(x, y, 'x') plt.plot(x, y, 'x')
plt.axis('equal') dataII = numpy.random.multivariate_normal(meanII, cov, datapointsII).T
plt.show() x, y = dataII
plt.plot(x, y, 'x')
data = [] plt.axis('equal')
xs, ys = dataI plt.show()
for x, y in zip(xs, ys):
data.append([x, y, 'a'])
xs, ys = dataII
for x, y in zip(xs, ys):
data.append([x, y, 'b'])
# Write data to csv files data = []
with open("data.csv", 'wb') as csvfile: xs, ys = dataI
csvfile.write("x,y,label\n") for x, y in zip(xs, ys):
spamwriter = csv.writer(csvfile, delimiter=',', data.append([x, y, 'a'])
quotechar='"', quoting=csv.QUOTE_MINIMAL) xs, ys = dataII
for datapoint in data: for x, y in zip(xs, ys):
spamwriter.writerow(datapoint) data.append([x, y, 'b'])
# Write data to csv files
with open("data.csv", 'wb') as csvfile:
csvfile.write("x,y,label\n")
spamwriter = csv.writer(csvfile, delimiter=',',
quotechar='"', quoting=csv.QUOTE_MINIMAL)
for datapoint in data:
spamwriter.writerow(datapoint)
if __name__ == "__main__":
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
parser = ArgumentParser(description=__doc__,
formatter_class=ArgumentDefaultsHelpFormatter)
parser.add_argument("-n",
dest="n", default=2000, type=int,
help="how many points should get generated")
args = parser.parse_args()
main(args.n)