.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/demo_alphabet_freq.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_demo_alphabet_freq.py: ==================== Demo with alphabet freqeuncy ==================== .. GENERATED FROM PYTHON SOURCE LINES 6-147 .. image-sg:: /examples/images/sphx_glr_demo_alphabet_freq_001.png :alt: demo alphabet freq :srcset: /examples/images/sphx_glr_demo_alphabet_freq_001.png :class: sphx-glr-single-img .. code-block:: Python import numpy as np from pathlib import Path from matplotlib.font_manager import FontProperties from matplotlib.colors import LightSource from mpl_poormans_3d import BarToCharPrism import mpl_visual_context.patheffects as pe import mpl_visual_context.image_effect as ie import matplotlib.pyplot as plt from SecretColors import Palette fig, axs = plt.subplots(2, 1, num=1, clear=True, figsize=(15, 6), layout="constrained") # alphabet frequency data from wikipedia : https://en.wikipedia.org/wiki/Letter_frequency abcd = [chr(ord("A") + i) for i in range(26)] # A - Z freq = [8.2, 1.5, 2.8, 4.3, 12.7, 2.2, 2.0, 6.1, 7.0, 0.15, 0.77, 4.0, 2.4, 6.7, 7.5, 1.9, 0.095, 6.0, 6.3, 9.1, 2.8, 0.98, 2.4, 0.15, 2.0, 0.074] if True: ax = axs[0] x = np.arange(len(abcd)) ax.bar(x, freq) ax.set_xticks(x, abcd) ax.set_ylim(-1.5, 15) ax.set_ylabel("Frequency [%]") ls = LightSource(azdeg=25+90) fp = FontProperties("sans serif") import seaborn as sns cc = sns.color_palette("husl", 26) rs = np.random.RandomState(8) idx = rs.choice(len(cc), len(cc), replace=False) cc = np.array(cc)[idx] for p, fc, c in zip(ax.patches, cc, abcd): # p.set_fc(color) bar_to_prism = BarToCharPrism(ls, c, ratio=0.6, rotate_deg=10, fraction=0.5, scale=1.2, # fontprop=fp, distance_mode=np.mean) p.set_path_effects([#pe.FillOnly(), (bar_to_prism.get_pe_face(0) | pe.FillColor("k") | pe.ImageEffect(ie.Pad(20) | ie.Fill("k") | ie.GaussianBlur(5))), pe.FillColor(fc) | bar_to_prism, (bar_to_prism.get_pe_face(1) | pe.FillColor("w") ), ]) # from https://story.pxd.co.kr/958, w/o double consonant hangul_consonant = "ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋㅌㅍㅎ" hangul_freq = [11.3, 7.3, 8.0, 6.6, 5.6, 4.8, 9.1, 21.4, 8.3, 2.3, 1.6, 2.2, 1.5, 6.8] if True: ax = axs[1] import mplfonts from mplfonts.conf import FONT_DIR # , RC_DIR from pathlib import Path # fname = Path(FONT_DIR) / "NotoSansMonoCJKsc-Regular.otf" fname = Path(FONT_DIR) / "NotoSerifCJKsc-Regular.otf" # fname = Path(FONT_DIR) / "SourceHanSerifSC-Regular.otf" fp = FontProperties(fname=fname) x = np.arange(len(hangul_consonant)) ax.bar(x, hangul_freq) ax.set_xticks(x, hangul_consonant, fontproperties=fp) ax.set_ylim(-3, 25) ax.set_ylabel("Frequency [%]") ls = LightSource(azdeg=25+90) import seaborn as sns palette = Palette("material") cnames = list(c for c in palette.colors.keys() if c not in ["black", "white"]) rs = np.random.RandomState(8) cnames = rs.choice(cnames, len(cnames), replace=False) for p, cn, c in zip(ax.patches, cnames, hangul_consonant): cc = [palette.get(cn, shade=shade) for shade in np.linspace(20, 90, 50)] segment_params = (ax, 25, cc, None) bar_to_prism = BarToCharPrism(ls, c, ratio=0.6, rotate_deg=10, fraction=0.5, scale=1.2, fontprop=fp, segment_params=segment_params, distance_mode=np.mean) p.set_path_effects([#pe.FillOnly(), (bar_to_prism.get_pe_face(0) | pe.FillColor("k") | pe.ImageEffect(ie.Pad(20) | ie.Fill("k") | ie.GaussianBlur(10))), pe.FillColor(fc) | bar_to_prism, (bar_to_prism.get_pe_face(1) | pe.FillColor("w") ), ]) plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 4.412 seconds) .. _sphx_glr_download_examples_demo_alphabet_freq.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: demo_alphabet_freq.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: demo_alphabet_freq.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_