Thursday, June 13, 2019

Pillowを使用して画像を円形に切り取る

Pillowを使用して画像を円形に切り取るには、以下のサンプルコードのようにマスクを使用します。

circle-cutting.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw

# 画像を円形に切り取る
img1 = Image.open("/tmp/sf.jpg")
img2 = Image.new("RGB", img1.size, (0xbb, 0xdd, 0xff))
mask = Image.new("1", img1.size, 1)
draw = ImageDraw.Draw(mask)
draw.ellipse((0,0,img1.size[0]-1,img1.size[1]-1), fill=0)
del draw
img3 = Image.composite(img2, img1, mask);

img3.save("/tmp/circle-cutting.png")

〇元画像(sf.jpg)


〇出力画像(circle-cutting.png)


〇関連情報
Dockerでpython3.7とPillowをインストールしたコンテナ(Alpine3.9ベース)を作成する

Monday, June 03, 2019

Pillowを使用して角丸四角を描画する

Pillowを使用して角丸四角を描画するには、以下のサンプルコードのようにrectangleメソッドとpiesliceメソッドを実行します。

pillow-roundrectangle.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw

# 角丸四角を描画する
img1 = Image.new("RGB", (100,100), "#ffffff")
draw = ImageDraw.Draw(img1)
rx = 10
ry = 10
fillcolor = "#bbddff"
draw.rectangle((0,ry)+(img1.size[0]-1,img1.size[1]-1-ry), fill=fillcolor)
draw.rectangle((rx,0)+(img1.size[0]-1-rx,img1.size[1]-1), fill=fillcolor)
draw.pieslice((0,0)+(rx*2,ry*2), 180, 270, fill=fillcolor)
draw.pieslice((0,img1.size[1]-1-ry*2)+(rx*2,img1.size[1]-1), 90, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,img1.size[1]-1-ry*2)+
(img1.size[0]-1,img1.size[1]-1), 0, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,0)+
(img1.size[0]-1,ry*2), 270, 360, fill=fillcolor)
del draw

img1.save("/tmp/roundrectangle.png")

出力画像(roundrectangle.png)


○関連情報
Dockerでpython3.7とPillowをインストールしたコンテナ(Alpine3.9ベース)を作成する

Thursday, May 30, 2019

Pillowで扇形を描画する

Pillowで扇形を描画するには、以下のサンプルコードのようにpiesliceメソッドを使用します。

pillow-pie.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw

# 扇形を描画する
img1 = Image.new("RGB", (100,100), "#ffffff")
draw = ImageDraw.Draw(img1)
draw.pieslice((10,10)+(89,89), 90, 180, outline="#000000", fill="#bbddff")
del draw

img1.save("/tmp/pillow-pie.png")

出力画像(pillow-pie.png)


Tuesday, May 28, 2019

Pillowでポリゴンを描画する

Pillowでポリゴンを描画するには、以下のサンプルコードのようにpolygonメソッドを使用します。

pillow-polygon.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw
# ポリゴンを描画する
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.polygon((10,10)+(10,89)+(89,10), outline=(0x00, 0x00, 0x00), fill=(0xbb, 0xdd, 0xff))
del draw
img1.save("/tmp/pillow-polygon.png")

〇出力画像(pillow-polygon.png)


〇関連情報
Dockerでpython3.7とPillowをインストールしたコンテナ(Alpine3.9ベース)を作成する

Saturday, May 25, 2019

Pillowで円を描画する

Pillowで円を描画するには、以下のサンプルコードのようにellipseメソッドを使用します。

pillow-ellipse.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw
# 円を描画する
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.ellipse((0,0,99,99), outline=(0x00, 0x00, 0x00), fill=(0xbb, 0xdd, 0xff))
del draw
img1.save("/tmp/pillow-ellipse.png")

〇出力画像(pillow-ellipse.png)


〇関連情報
Dockerでpython3.7とPillowをインストールしたコンテナ(Alpine3.9ベース)を作成する

Pillowで四角を描画する

Pillowで四角を描画するには、以下のサンプルコードのようにrectangleメソッドを使用します。

pillow-rectangle.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw
# 四角を描画する
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.rectangle((10,10,89,89), outline=(0x00, 0x00, 0x00), fill=(0xbb, 0xdd, 0xff))
del draw
img1.save("/tmp/pillow-rectangle.png")

〇出力画像(pillow-rectangle.png)


〇関連情報
Dockerでpython3.7とPillowをインストールしたコンテナ(Alpine3.9ベース)を作成する

Friday, May 24, 2019

Pillowで直線を描画する

Pillowで直線を描画するには、以下のサンプルコードのようにlineメソッドを使用します。

pillow-line.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw
# 線を引く
img1 = Image.new("RGB", (100,100), (0xff, 0xff, 0xff))
draw = ImageDraw.Draw(img1)
draw.line((0,100)+(100,0), fill=(0xbb, 0xdd, 0xff), width=2)
del draw
img1.save("/tmp/pillow-line.png")

〇出力画像(pillow-line.png)


〇関連情報
Dockerでpython3.7とPillowをインストールしたコンテナ(Alpine3.9ベース)を作成する

Saturday, March 23, 2019

JupyterとPygalで軸ラベルを回転させる

軸ラベルを回転させるには、以下のサンプルのようにx_label_rotation, y_label_rotationを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(x_label_rotation=-45, y_label_rotation=270, height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

〇出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構>築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで半メーターグラフを表示する

半メーターグラフを表示するには、以下のサンプルのようにSolidGaugeとhalf_pieを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.SolidGauge(half_pie=True, inner_radius=0.7, height=300, style=style1)
df = pd.DataFrame({'商品A':[55.2], '商品B':[30.4], '商品C':[15.0]})
chart.x_labels = ['percent']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

〇出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構>築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalでメーターグラフを表示する

メーターグラフを表示するには、以下のサンプルのようにSolidGaugeを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.SolidGauge(inner_radius=0.7, height=300, style=style1)
df = pd.DataFrame({'商品A':[55.2], '商品B':[30.4], '商品C':[15.0]})
chart.x_labels = ['percent']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

〇出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構>築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

Friday, March 22, 2019

JupyterとPygalで半円グラフを表示する

半円グラフを表示するには、以下のサンプルのようにhalf_pieを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Pie(half_pie=True, height=300, style=style1)
df = pd.DataFrame({'商品A':[55], '商品B':[30], '商品C':[15]})
chart.x_labels = ['percent']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

〇出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構>築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで半ドーナツグラフを表示する

半ドーナツグラフを表示するには、以下のサンプルのようにhalf_pieとinner_radiusを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Pie(half_pie=True,inner_radius=0.6, height=300, style=style1)
df = pd.DataFrame({'商品A':[55], '商品B':[30], '商品C':[15]})
chart.x_labels = ['percent']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

〇出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構>築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalでドーナツグラフを表示する

ドーナツグラフを表示するには、以下のサンプルのようにPieとinner_radiusを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Pie(inner_radius=0.6, height=300, style=style1)
df = pd.DataFrame({'商品A':[55], '商品B':[30], '商品C':[15]})
chart.x_labels = ['percent']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

〇出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構>築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで円グラフを表示する

円グラフを表示するには、以下のサンプルのようにPieを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Pie(height=300, style=style1)
df = pd.DataFrame({'商品A':[55], '商品B':[30], '商品C':[15]})
chart.x_labels = ['percent']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

〇出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構>築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで縦方向の折れ線グラフを表示する

縦方向の折れ線グラフを表示するには、以下のサンプルのようにHorizontalLineを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.HorizontalLine(height=300, style=style1)
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

〇出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構>築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで積み上げ折れ線グラフを表示する

積み上げ折れ線グラフを表示するには、以下のサンプルのようにStackedLineを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.StackedLine(height=300, style=style1, fill=True)
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

〇出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構>築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

Thursday, March 21, 2019

JupyterとPygalで折れ線領域グラフを表示する

折れ線領域グラフを表示するには、以下のサンプルのようにfillを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
  ,opacity=0.3
)
chart = pg.Line(height=300, style=style1, fill=True)
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで折れ線グラフのY軸目盛り線を非表示にする

折れ線グラフのY軸目盛り線を非表示にするには、以下のサンプルのようにshow_y_guidesを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Line(height=300, style=style1, show_y_guides=False)
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで折れ線グラフのX軸目盛線を表示する

折れ線グラフのX軸目盛線を表示するには、以下のサンプルのようにshow_x_guidesを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Line(height=300, style=style1, show_x_guides=True)
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで折れ線グラフの線を点線にする

折れ線グラフの線を点線にするには、以下のサンプルのようにstroke_styleとdasharrayを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Line(height=300, style=style1, stroke_style={'dasharray':'5,5'})
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで折れ線グラフの点を非表示にする

折れ線グラフの点を非表示にするには、以下のサンプルのようにshow_dotsを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Line(height=300, style=style1, show_dots=False)
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで折れ線グラフの点の大きさを変更する

折れ線グラフの点の大きさを変更するには、以下のサンプルのようにdots_sizeを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Line(height=300, style=style1, dots_size=10)
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで折れ線グラフの線の太さを変更する

折れ線グラフの線の太さを変更には、以下のサンプルのようにstroke_styleのwidthを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Line(height=300, style=style1, stroke_style={'width':10})
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで折れ線グラフ表示する

折れ線グラフ表示するには、以下のサンプルのようにLineを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Line(height=300, style=style1)
df = pd.DataFrame({'商品A': [25, 20, 30], '商品B':[7, 30, 50], '商品C':[12, 40, 80]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで横方向のグラフを表示する

横方向のグラフを表示するには、以下のサンプルのようにHorizontalBarを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.HorizontalBar(height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalで積み上げ棒グラフ表示する

積み上げ棒グラフ表示するには、以下のサンプルのようにStackedBarを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.StackedBar(legend_at_bottom=True, legend_at_bottom_columns=3, height=300, style=style1)
df = pd.DataFrame({'商品A': [10, 20, 30], '商品B':[30, 40, 50], '商品C':[60, 40, 20]})
chart.x_labels = ['2017年', '2018年', '2019年']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

Sunday, March 17, 2019

JupyterとPygalでグラフ凡例を下に表示する

グラフ凡例を下に表示するには、以下のサンプルのようにlegend_at_bottomを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(legend_at_bottom=True, legend_at_bottom_columns=3, height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalでグラフ凡例を表示・非表示にする

グラフ凡例を表示・非表示にするには、以下のサンプルのようにshow_legendを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(show_legend=False, height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

Friday, March 15, 2019

JupyterとPygalで凡例のフォントサイズを指定する

凡例のフォントサイズを指定するには、以下のサンプルのようにlegend_font_sizeを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  legend_font_size=24,
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalでグラフの題名のフォントサイズを指定する

グラフの題名のフォントサイズを指定するには、以下のサンプルのようにtitle_font_sizeを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  title_font_size=40,
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(title='商品別売上', height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalでグラフの数値の位置を指定する

グラフの数値の位置を指定するには、以下のサンプルのようにprint_values_positionを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(print_values=True, print_values_position='top', height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalでグラフの数値のフォントサイズを指定する

グラフの数値のフォントサイズを指定するには、以下のサンプルのようにvalue_font_sizeを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  value_font_size=50,
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(print_values=True, height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalでグラフに実数値を表示する

グラフに実数値を表示するには、以下のサンプルのようにprint_valuesを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(print_values=True, height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalでグラフの不透明度を設定する

グラフの不透明度を指定するには、以下のサンプルのようにStyleのopacityを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

Thursday, March 14, 2019

JupyterとPygalでグラフの色を設定する

グラフ色を指定するには、以下のサンプルのようにStyleのcolorsを使用します。

〇サンプルコード
%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  colors=('#3060ff', '#ff0000', '#00ff00')
)
chart = pg.Bar(height=300, style=style1)
df = pd.DataFrame({'商品A': [10], '商品B':[21], '商品C':[32]})
chart.x_labels = ['Sales']
chart.add('商品A', df['商品A'])
chart.add('商品B', df['商品B'])
chart.add('商品C', df['商品C'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

Wednesday, March 13, 2019

JupyterとPygalでグラフの背景色・プロット背景色を設定する

背景色・プロット背景色を指定するには、以下のサンプルのようにStyleのbackground, plot_backgroundを使用します。

%matplotlib inline
import pandas as pd
import pygal as pg
from pygal.style import Style
style1 = Style(
  background='#bbddff',
  plot_background='#88aadd'
)
chart = pg.Bar(height=300, style=style1)
df = pd.DataFrame({'Sales': [10,21,32]})
chart.x_labels = ['商品A', '商品B', '商品C']
chart.add('Sales', df['Sales'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

JupyterとPygalでグラフの題名、軸の名称を設定する

題名、軸の名称を指定するには、以下のサンプルのようにtitleで題名、軸の名称はx_title/y_titleを使用します。

%matplotlib inline
import pandas as pd
import pygal as pg
chart = pg.Bar(height=300, title="商品別売上", x_title='商品', y_title='百万')
df = pd.DataFrame({'Sales': [10,21,32]})
chart.x_labels = ['商品A', '商品B', '商品C']
chart.add('Sales', df['Sales'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Ubuntu18.04)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygalubuntu1804.html

VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する
http://serverarekore.blogspot.com/2019/03/vagrantjupyter-labpygaldebian-stretch96.html

Monday, March 11, 2019

JupyterとPygalで棒グラフを描画する

以下のサンプルプログラムでJupyterとPygalで棒グラフを描画する事ができます。

%matplotlib inline
import pandas as pd
import pygal as pg
chart = pg.Bar(height=300)
df = pd.DataFrame({'Sales': [10,21,32]})
chart.x_labels = ['商品A', '商品B', '商品C']
chart.add('Sales', df['Sales'])
display({'image/svg+xml': chart.render(is_unicode=True)}, raw=True)

○出力画像


〇関連項目
VagrantでJupyter Lab、Pygalをインストールした仮想マシン(Debian Stretch/9.6)を構築する

Friday, February 08, 2019

PythonとGraphvizのcircoで有方向グラフを描画する

PythonとGraphvizのcircoで有方向グラフを描画するには、以下のようなコマンドを実行します。

〇サンプルコード
# coding: utf-8 
from graphviz import Digraph

gv = Digraph(engine='circo', format='png')
# フォント設定
gv.attr('node', fontname="MS Gothic")
# ノード作成
gv.node("項目1")
gv.node("項目2")
gv.node("項目3")
gv.node("項目4")
gv.node("項目5")
gv.node("項目6")
# エッジ作成
gv.edge("項目1", "項目2")
gv.edge("項目2", "項目3")
gv.edge("項目3", "項目4")
gv.edge("項目4", "項目5")
gv.edge("項目5", "項目6")
gv.edge("項目6", "項目1")
gv.edge("項目2", "項目5")
gv.render("graphviz-test35")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法はDockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成するを参照してください。

PythonとGraphvizのneatoでノードの位置を調節する

PythonとGraphvizのneatoでノードの位置を調節するには、以下のようにposアトリビュートを使用します。

〇サンプルコード
# coding: utf-8 
from graphviz import Graph

gv = Graph(engine='neato', format='png')
# フォント設定
gv.attr('node', fontname="MS Gothic")
# ノード作成
gv.node("項目1", pos="0,0!")
gv.node("項目2", pos="3,0!")
gv.node("項目3")
gv.node("項目4", pos="0,1!")
# エッジ作成
gv.edge("項目1", "項目2")
gv.edge("項目2", "項目3")
gv.edge("項目3", "項目4")
gv.edge("項目4", "項目1")
gv.render("graphviz-test34")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。

PythonとGraphvizのneatoでノード間の線の長さを変更する

PythonとGraphvizのneatoでノード間の線の長さを変更するには、以下のようにlenアトリビュートを使用します。

〇サンプルコード
# coding: utf-8 
from graphviz import Graph

gv = Graph(engine='neato', format='png')
# フォント設定
gv.attr('node', fontname="MS Gothic")
# ノード作成
gv.node("項目1")
gv.node("項目2")
gv.node("項目3")
gv.node("項目4")
# エッジ作成
gv.edge("項目1", "項目2")
gv.edge("項目2", "項目3")
gv.edge("項目3", "項目4")
gv.edge("項目4", "項目1", len="2")
gv.render("graphviz-test33")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。

PythonとGraphvizのneatoで無方向グラフを描画する

PythonとGraphvizのneatoで無方向グラフを描画するには、以下のようにengineを指定します。

〇サンプルコード
# coding: utf-8 
from graphviz import Graph

gv = Graph(engine='neato', format='png')
# フォント設定
gv.attr('node', fontname="MS Gothic")
# ノード作成
gv.node("項目1")
gv.node("項目2")
gv.node("項目3")
gv.node("項目4")
gv.node("項目5")
# エッジ作成
gv.edge("項目1", "項目2")
gv.edge("項目2", "項目3")
gv.edge("項目2", "項目4")
gv.edge("項目2", "項目5")
gv.render("graphviz-test32")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。

PythonとGraphvizで角丸四角などの角が丸まった形を描画する

PythonとGraphvizで角丸四角などの角が丸まった形を描画するには、以下のようにstyleアトリビュートを使用します。

〇サンプルコード
# coding: utf-8 
from graphviz import Digraph

dot = Digraph(format='png')
# フォント設定
dot.attr('node', fontname="MS Gothic")
# ノード作成
dot.node("項目1")
dot.node('項目2', shape="box", style="rounded,filled",
  fillcolor="#ccddff")
dot.node("項目3", shape="triangle", style="rounded,filled",
  fillcolor="#ccddff")
dot.node("項目4", shape="house", style="rounded,filled", 
  fillcolor="#ccddff")
# エッジ作成
dot.edge("項目1", "項目2")
dot.edge("項目2", "項目3")
dot.edge("項目2", "項目4")
dot.render("graphviz-test31")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。

Monday, January 28, 2019

PythonとGraphvizで矢印の頭の形を変更する

PythonとGraphvizで矢印の頭の形を変更するには、以下のようにarrowheadを使用します。

〇サンプルコード
# coding: utf-8 
from graphviz import Digraph

dot = Digraph(format='png')
# フォント設定
dot.attr('node', fontname="MS Gothic")
# ノード作成
dot.node("項目1")
dot.node('項目2')
dot.node("項目3")
dot.node("項目4")
# エッジ作成
dot.edge("項目1", "項目2", arrowhead="dot")
dot.edge("項目2", "項目3", arrowhead="empty")
dot.edge("項目2", "項目4", arrowhead="diamond")
dot.render("graphviz-test30")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・コマンドから同様のことを実行する場合は「Graphvizで矢印の頭の形を変更する」を参照してください。

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。

PythonとGraphvizでGraphvizでノードの間隔を調節する

PythonとGraphvizでGraphvizでノードの間隔を調節するには、以下のようにranksepとnodesepを使用します。

〇サンプルコード
# coding: utf-8 
from graphviz import Digraph

dot = Digraph(format='png')
dot.attr(ranksep='0.2')
dot.attr(nodesep='0.1')
# フォント設定
dot.attr('node', fontname="MS Gothic")
# ノード作成
dot.node("項目1")
dot.node('項目2')
dot.node("項目3")
dot.node("項目4")
# エッジ作成
dot.edge("項目1", "項目2")
dot.edge("項目2", "項目3")
dot.edge("項目2", "項目4")
dot.render("graphviz-test29")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・コマンドから同様のことを実行する場合は「Graphvizでノードの間隔を調節する」を参照してください。

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。

PythonとGraphvizでサブグラフ(クラスタ)への矢印を描画する

PythonとGraphvizでサブグラフ(クラスタ)への矢印を描画するには、以下のようにlheadとltailを使用します。

〇サンプルコード
# coding: utf-8 
from graphviz import Digraph

dot = Digraph(format='png')
dot.attr(compound='true')
# フォント設定
dot.attr('node', fontname="MS Gothic")
# ノード作成
with dot.subgraph(name="cluster0") as sg:
  sg.node("手順1")
  sg.node("手順2")
  sg.edge("手順1", "手順2")

with dot.subgraph(name="cluster1") as sg:
  sg.node("手順3")
  sg.node("手順4")
  sg.edge("手順3", "手順4")

dot.node('開始')
dot.node('終了')
dot.edge("開始", "手順1", lhead="cluster0")
dot.edge("開始", "手順3", lhead="cluster1")
dot.edge("手順2", "終了", ltail="cluster0")
dot.edge("手順4", "終了", ltail="cluster1")
dot.render("graphviz-test28")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・コマンドから同様のことを実行する場合は「Graphvizでサブグラフ(クラスタ)への矢印を描画する 」を参照してください。

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。

Wednesday, January 16, 2019

PythonとGraphvizでサブグラフ(クラスタ)にラベルを設定する

PythonとGraphvizでサブグラフ(クラスタ)にラベルを設定するには、以下のようにsubgraphとlabelを使用します。

〇サンプルコード
# coding: utf-8 
from graphviz import Digraph

dot = Digraph(format='png')
# フォント設定
dot.attr('node', fontname="MS Gothic")
# ノード作成
with dot.subgraph(name="cluster0") as sg:
  sg.node("手順1")
  sg.node("手順2")
  sg.edge("手順1", "手順2")
  sg.attr(label="Procedure-A")

with dot.subgraph(name="cluster1") as sg:
  sg.node("手順3")
  sg.node("手順4")
  sg.edge("手順3", "手順4")
  sg.attr(label="Procedure-B")

dot.node('開始')
dot.node('終了')
dot.edge("開始", "手順1")
dot.edge("開始", "手順3")
dot.edge("手順2", "終了")
dot.edge("手順4", "終了")
dot.render("graphviz-test27")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・コマンドから同様のことを実行する場合は「Graphvizでサブグラフ(クラスタ)にラベルを設定する」を参照してください。

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。

PythonとGraphvizでサブグラフ(クラスタ)を描画する

PythonとGraphvizでサブグラフ(クラスタ)を描画するには、以下のようにsubgraphを使用します。

〇サンプルコード
# coding: utf-8 
from graphviz import Digraph

dot = Digraph(format='png')
# フォント設定
dot.attr('node', fontname="MS Gothic")
# ノード作成
with dot.subgraph(name="cluster0") as sg:
  sg.node("手順1")
  sg.node("手順2")
  sg.edge("手順1", "手順2")

with dot.subgraph(name="cluster1") as sg:
  sg.node("手順3")
  sg.node("手順4")
  sg.edge("手順3", "手順4")

dot.node('開始')
dot.node('終了')
dot.edge("開始", "手順1")
dot.edge("開始", "手順3")
dot.edge("手順2", "終了")
dot.edge("手順4", "終了")
dot.render("graphviz-test26")

○出力画像


〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・コマンドから同様のことを実行する場合は「Graphvizでサブグラフ(クラスタ)を描画する」を参照してください。

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。

PythonとGraphvizでレコード型のノードを描画する

PythonとGraphvizでレコード型のノードを描画するには、以下のようにshapeアトリビュートを使用します。

〇サンプルコード
# coding: utf-8 
from graphviz import Digraph

dot = Digraph(format='png')
# フォント設定
dot.attr('node', fontname="MS Gothic")
# ノード作成
dot.node("項目1", shape="record", label="<lp> 左| 中央 |<rp> 右")
dot.node('項目2')
dot.node("項目3")
# エッジ作成
dot.edge("項目1:lp", "項目2")
dot.edge("項目1:rp", "項目3")
dot.render("graphviz-test25")

※日本語を使用する場合はスペースを挟まないといけない場合がある??

○出力画像

〇graphvizのインストール
pipenv install graphvizやpip install graphvizなどでインストールします。


○関連情報
Graphvizまとめ

・コマンドから同様のことを実行する場合は「Graphvizでレコード型のノードを描画する」を参照してください。

・PythonとGraphvizに関する他の記事はこちらを参照してください。

・サンプルコードを実行する環境としてDockerコンテナを利用することもできます。コンテナの構築方法は「Dockerでpython3.7とgraphvizをインストールしたコンテナ(Alpine3.9ベース)を作成する」を参照してください。