はじめに
Pythonのmatplotlibを使用してドリッピングやマーブリングのような画像を出力します.
完全にお遊びです.
(GenerativeAIで画像生成できるってのに何やってんだか...)
動作環境情報
- Python 3.12.0
- matplotlib 3.8.1
手法
四方八方にランダムに動く線を重ねて重ねて描いてみます.
ソースコード
random_walk_paint.py
import numpy as np
from random import random
import matplotlib.pyplot as plt
from math import *
def random_walk(N):
x, y = 0, 0
x_list=[0]
y_list=[0]
for n in range(N):
theta=2.0*pi*random()
x = x+cos(theta)
y = y+sin(theta)
x_list.append (x)
y_list.append(y)
return x_list, y_list
n = 9
plt.rcParams["axes.prop_cycle"] = plt.cycler("color", plt.get_cmap("cool")(np.linspace(0,1,n)))
N = 50000
for i in range(50):
sExec = "x" + str(i) + ", y" + str(i) + " = random_walk(N)"
exec(sExec)
sExecPlot = "plt.plot(x" + str(i) + ", y" + str(i) + ", alpha = 0.3)"
exec(sExecPlot)
ax = plt.gca()
ax.axes.xaxis.set_visible(False)
ax.axes.yaxis.set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
plt.xlim([-100,100])
plt.ylim([-100,100])
plt.show()
今回は20行のplt.get_cmap("xxx")の中身をいろんなカラーマップに変えてみます.
試したい方は以下を参考にカラーマップを変更してみてください.
結果
おわりに
なんかちょっといい感じ.
透過率(alpha)の値を変えるとテイスト変わるかも?? やってみてね.