In [23]:
%matplotlib inline
In [24]:
from __future__ import division
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
from string import ascii_uppercase
from six.moves import range, zip
from itertools import product
Let's start off with a square figure.
In [25]:
fig = plt.figure(figsize=(5, 5))
ax = fig.add_subplot(1, 1, 1)
plt.show()
Give it a nice wooden color http://encycolorpedia.com/c19a6b
In [26]:
BOARD_COLOR = '#d7be9f'
In [27]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
plt.show()
The default background color for Axes is white. Let's propagate the figure background color by making the axis background color transparent, or 'none'
In [28]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
plt.show()
Set the ticks to reflect 19 by 19 board
In [29]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
plt.show()
Add gridlines
In [30]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
plt.show()
Generate and plot the hoshi (star) points
In [31]:
hoshi = list(product(range(3, 19, 6), repeat=2))
hoshi
Out[31]:
In [32]:
hoshi_rows, hoshi_cols = zip(*hoshi)
hoshi_rows, hoshi_cols
Out[32]:
In [33]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko')
plt.show()
Need to set the x and y lims... Go boards are ordinarily read from the top-left.
In [34]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko')
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
plt.show()
The column labels are normally at the top.
In [35]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko')
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
plt.show()
The column labels are often the letters of the alphabet, and not just in the Western world of Go. Otherwise, Chinese characters representing the numbers are sometimes used as well, but along the rows.
In [36]:
ascii_uppercase
Out[36]:
In [37]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko')
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
plt.show()
The hoshi are massive... Let's make them smaller by setting markersize for now. I don't think this will scale with figsize, so well need to revisit this later. Patches apparently do scale.
In [38]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
plt.show()
The stones!
In [39]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k'))
ax.add_patch(Circle((9, 10), .475, facecolor='w'))
ax.add_patch(Circle((8, 9), .475, facecolor='w'))
ax.add_patch(Circle((9, 8), .475, facecolor='w'))
plt.show()
The white stones seem to be transparent, but this is not the issue. It has to do with the order the elements are drawn: http://stackoverflow.com/questions/5390699/patches-i-add-to-my-graph-are-not-opaque-with-alpha-1-why
In [40]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=10))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=10))
plt.show()
Let's enlarge it to make sure everything scales well. This confirms our earlier suspicion that ordinary markers do not scale, and patches do.
In [41]:
fig = plt.figure(figsize=(10, 10), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=10))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=10))
plt.show()
In [42]:
fig = plt.figure(figsize=(5, 5))
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=10))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=10))
plt.show()
Print publications normally have a thicker border.
In [43]:
fig = plt.figure(figsize=(5, 5))
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
for spine in ax.spines.itervalues():
spine.set_linewidth(1.5)
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=10))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=10))
plt.show()
Let's try saving some of our figures.
In [44]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=10))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=10))
fig.savefig('test_color1.png')
In [45]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=10))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=10))
fig.savefig('test_color2.png', facecolor=fig.get_facecolor())
In [46]:
fig = plt.figure(figsize=(5, 5))
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
for spine in ax.spines.itervalues():
spine.set_linewidth(1.5)
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=10))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=10))
fig.savefig('test_bw.png')
In [47]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=10))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=10))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=10))
ax.text(15, 13, 'a')
ax.text(8, 9, 'b')
ax.text(9, 9, 'c', horizontalalignment='center', verticalalignment='center')
plt.show()
In [48]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=2))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=2))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=2))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=2))
ax.text(15, 13, 'a')
ax.text(8, 9, 'b')
ax.text(9, 9, 'c', horizontalalignment='center', verticalalignment='center')
plt.show()
In [49]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=3))
ax.text(15, 13, 'a')
ax.text(8, 9, 'b')
ax.text(9, 9, 'c', horizontalalignment='center', verticalalignment='center')
plt.show()
In [50]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=3))
ax.text(15, 13, 'a', horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', horizontalalignment='center', verticalalignment='center')
plt.show()
In [51]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=3))
ax.text(15, 13, 'a', backgroundcolor=BOARD_COLOR, horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', color='w', horizontalalignment='center', verticalalignment='center')
plt.show()
In [52]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=3))
ax.text(15, 13, 'a', fontsize='large', backgroundcolor=BOARD_COLOR, horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', fontsize='large', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', fontsize='large', color='w', horizontalalignment='center', verticalalignment='center')
plt.show()
In [53]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9, 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', zorder=3))
ax.text(15, 13, 'a', fontsize='large', backgroundcolor=BOARD_COLOR, horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', fontsize='large', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', fontsize='large', color='w', horizontalalignment='center', verticalalignment='center')
plt.show()
In [54]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9., 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(15, 13, 'a', fontsize='large', backgroundcolor=BOARD_COLOR, horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', fontsize='large', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', fontsize='large', color='w', horizontalalignment='center', verticalalignment='center')
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.plot([9], [8], marker='^', zorder=10)
plt.show()
In [55]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9., 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(15, 13, 'a', fontsize='large', backgroundcolor=BOARD_COLOR, horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', fontsize='large', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', fontsize='large', color='w', horizontalalignment='center', verticalalignment='center')
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(9, 8, '$\lambda$', fontsize='large', horizontalalignment='center', verticalalignment='center')
plt.show()
In [56]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9., 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(15, 13, 'a', fontsize='large', backgroundcolor=BOARD_COLOR, horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', fontsize='large', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', fontsize='large', color='w', horizontalalignment='center', verticalalignment='center')
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(9, 8, '$\\bigtriangledown$', fontsize='large', horizontalalignment='center', verticalalignment='center')
plt.show()
In [58]:
fig = plt.figure(figsize=(8, 8), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9., 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(15, 13, 'a', fontsize='large', backgroundcolor=BOARD_COLOR, horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', fontsize='large', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', fontsize='large', color='w', horizontalalignment='center', verticalalignment='center')
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(9, 8, '$\\bigtriangledown$', fontsize='large', horizontalalignment='center', verticalalignment='center')
plt.show()
In [59]:
from matplotlib.collections import PatchCollection
In [60]:
fig = plt.figure(figsize=(5, 5), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3)
for center in hoshi:
ax.add_patch(Circle(center, .01, edgecolor='none', facecolor='k'))
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9., 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(15, 13, 'a', fontsize='large', backgroundcolor=BOARD_COLOR, horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', fontsize='large', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', fontsize='large', color='w', horizontalalignment='center', verticalalignment='center')
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(9, 8, '$\\bigtriangledown$', fontsize='large', horizontalalignment='center', verticalalignment='center')
plt.show()
In [66]:
fig = plt.figure(figsize=(8, 8), facecolor=BOARD_COLOR)
ax = fig.add_subplot(1, 1, 1)
ax.set_axis_bgcolor('none')
ax.set_xticks(range(19))
ax.set_yticks(range(19))
ax.grid(color='k', linestyle='-', linewidth=1)
ax.plot(hoshi_rows, hoshi_cols, 'ko', markersize=3, antialiased=False)
ax.set_xlim((0, 18))
ax.set_ylim((18, 0))
ax.xaxis.set_tick_params(labelbottom='off', labeltop='on')
ax.set_xticklabels(ascii_uppercase[:19])
ax.set_yticklabels(range(1, 19+1))
ax.add_patch(Circle((9, 9), .475, facecolor='k', zorder=3))
ax.add_patch(Circle((9., 10), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((8, 9), .475, facecolor='w', zorder=3))
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(15, 13, 'a', fontsize='large', backgroundcolor=BOARD_COLOR, horizontalalignment='center', verticalalignment='center')
ax.text(8, 9, 'b', fontsize='large', horizontalalignment='center', verticalalignment='center')
ax.text(9, 9, 'c', fontsize='large', color='w', horizontalalignment='center', verticalalignment='center')
ax.add_patch(Circle((9, 8), .475, facecolor='w', clip_on=False, zorder=3))
ax.text(9, 8, '$\\bigtriangledown$', fontsize='large', horizontalalignment='center', verticalalignment='center')
plt.show()
In [ ]: