mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-26 06:48:04 +02:00
52 lines
1.4 KiB
Python
Executable file
52 lines
1.4 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
import matplotlib.pyplot as plt
|
|
import numpy
|
|
import csv
|
|
|
|
|
|
def main(n):
|
|
cov = [[25, 20], [20, 25]]
|
|
|
|
meanI = [70, 40]
|
|
datapointsI = n
|
|
|
|
meanII = [60, 20]
|
|
datapointsII = n
|
|
|
|
dataI = numpy.random.multivariate_normal(meanI, cov, datapointsI).T
|
|
x, y = dataI
|
|
plt.plot(x, y, 'x')
|
|
|
|
dataII = numpy.random.multivariate_normal(meanII, cov, datapointsII).T
|
|
x, y = dataII
|
|
plt.plot(x, y, 'x')
|
|
|
|
plt.axis('equal')
|
|
plt.show()
|
|
|
|
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)
|