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

@ -4,37 +4,49 @@ import matplotlib.pyplot as plt
import numpy
import csv
cov = [[25, 20], [20, 25]] # diagonal covariance, points lie on x or y-axis
meanI = [70, 40]
datapointsI = 2000
def main(n):
cov = [[25, 20], [20, 25]]
meanII = [60, 20]
datapointsII = 2000
meanI = [70, 40]
datapointsI = n
dataI = numpy.random.multivariate_normal(meanI, cov, datapointsI).T
x, y = dataI
plt.plot(x, y, 'x')
meanII = [60, 20]
datapointsII = n
dataII = numpy.random.multivariate_normal(meanII, cov, datapointsII).T
x, y = dataII
plt.plot(x, y, 'x')
dataI = numpy.random.multivariate_normal(meanI, cov, datapointsI).T
x, y = dataI
plt.plot(x, y, 'x')
plt.axis('equal')
plt.show()
dataII = numpy.random.multivariate_normal(meanII, cov, datapointsII).T
x, y = dataII
plt.plot(x, y, 'x')
data = []
xs, ys = dataI
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'])
plt.axis('equal')
plt.show()
# 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)
data = []
xs, ys = dataI
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
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)