LoginSignup
3
3

【matplotlib】random_walkでお絵描きしてみた

Posted at

はじめに

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")の中身をいろんなカラーマップに変えてみます.
試したい方は以下を参考にカラーマップを変更してみてください.
cmap.png

結果

a1.png
a2.png
a3.png

おわりに

なんかちょっといい感じ.
透過率(alpha)の値を変えるとテイスト変わるかも?? やってみてね.

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3