{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Päivitetty 2025-11-30 / Aki Taanila\n" ] } ], "source": [ "from datetime import datetime\n", "print(f'Päivitetty {datetime.now().date()} / Aki Taanila')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7/7 Kaavioiden oletusparametrit ja niiden vaihtaminen\n", "\n", "Matplotlib-grafiikassa lukuisilla parametreilla on oletusarvot, joita voit muuttaa. Jos esimerkiksi haluat käyttää kaavioissa tiettyä fonttia, niin ei kannata vaihtaa fonttia jokaiselle kaaviolle erikseen. Oletusparametrit ja niiden arvot voit listata **rcParams**-komennolla.\n", "\n", "### Tuonit ja alkuvalmistelut" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RcParams({'_internal.classic_mode': False,\n", " 'agg.path.chunksize': 0,\n", " 'animation.bitrate': -1,\n", " 'animation.codec': 'h264',\n", " 'animation.convert_args': ['-layers', 'OptimizePlus'],\n", " 'animation.convert_path': 'convert',\n", " 'animation.embed_limit': 20.0,\n", " 'animation.ffmpeg_args': [],\n", " 'animation.ffmpeg_path': 'ffmpeg',\n", " 'animation.frame_format': 'png',\n", " 'animation.html': 'none',\n", " 'animation.writer': 'ffmpeg',\n", " 'axes.autolimit_mode': 'data',\n", " 'axes.axisbelow': 'line',\n", " 'axes.edgecolor': 'black',\n", " 'axes.facecolor': 'white',\n", " 'axes.formatter.limits': [-5, 6],\n", " 'axes.formatter.min_exponent': 0,\n", " 'axes.formatter.offset_threshold': 4,\n", " 'axes.formatter.use_locale': False,\n", " 'axes.formatter.use_mathtext': False,\n", " 'axes.formatter.useoffset': True,\n", " 'axes.grid': False,\n", " 'axes.grid.axis': 'both',\n", " 'axes.grid.which': 'major',\n", " 'axes.labelcolor': 'black',\n", " 'axes.labelpad': 4.0,\n", " 'axes.labelsize': 'medium',\n", " 'axes.labelweight': 'normal',\n", " 'axes.linewidth': 0.8,\n", " 'axes.prop_cycle': cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']),\n", " 'axes.spines.bottom': True,\n", " 'axes.spines.left': True,\n", " 'axes.spines.right': True,\n", " 'axes.spines.top': True,\n", " 'axes.titlecolor': 'auto',\n", " 'axes.titlelocation': 'center',\n", " 'axes.titlepad': 6.0,\n", " 'axes.titlesize': 'large',\n", " 'axes.titleweight': 'normal',\n", " 'axes.titley': None,\n", " 'axes.unicode_minus': True,\n", " 'axes.xmargin': 0.05,\n", " 'axes.ymargin': 0.05,\n", " 'axes.zmargin': 0.05,\n", " 'axes3d.automargin': False,\n", " 'axes3d.grid': True,\n", " 'axes3d.mouserotationstyle': 'arcball',\n", " 'axes3d.trackballborder': 0.2,\n", " 'axes3d.trackballsize': 0.667,\n", " 'axes3d.xaxis.panecolor': (0.95, 0.95, 0.95, 0.5),\n", " 'axes3d.yaxis.panecolor': (0.9, 0.9, 0.9, 0.5),\n", " 'axes3d.zaxis.panecolor': (0.925, 0.925, 0.925, 0.5),\n", " 'backend': 'module://matplotlib_inline.backend_inline',\n", " 'backend_fallback': True,\n", " 'boxplot.bootstrap': None,\n", " 'boxplot.boxprops.color': 'black',\n", " 'boxplot.boxprops.linestyle': '-',\n", " 'boxplot.boxprops.linewidth': 1.0,\n", " 'boxplot.capprops.color': 'black',\n", " 'boxplot.capprops.linestyle': '-',\n", " 'boxplot.capprops.linewidth': 1.0,\n", " 'boxplot.flierprops.color': 'black',\n", " 'boxplot.flierprops.linestyle': 'none',\n", " 'boxplot.flierprops.linewidth': 1.0,\n", " 'boxplot.flierprops.marker': 'o',\n", " 'boxplot.flierprops.markeredgecolor': 'black',\n", " 'boxplot.flierprops.markeredgewidth': 1.0,\n", " 'boxplot.flierprops.markerfacecolor': 'none',\n", " 'boxplot.flierprops.markersize': 6.0,\n", " 'boxplot.meanline': False,\n", " 'boxplot.meanprops.color': 'C2',\n", " 'boxplot.meanprops.linestyle': '--',\n", " 'boxplot.meanprops.linewidth': 1.0,\n", " 'boxplot.meanprops.marker': '^',\n", " 'boxplot.meanprops.markeredgecolor': 'C2',\n", " 'boxplot.meanprops.markerfacecolor': 'C2',\n", " 'boxplot.meanprops.markersize': 6.0,\n", " 'boxplot.medianprops.color': 'C1',\n", " 'boxplot.medianprops.linestyle': '-',\n", " 'boxplot.medianprops.linewidth': 1.0,\n", " 'boxplot.notch': False,\n", " 'boxplot.patchartist': False,\n", " 'boxplot.showbox': True,\n", " 'boxplot.showcaps': True,\n", " 'boxplot.showfliers': True,\n", " 'boxplot.showmeans': False,\n", " 'boxplot.vertical': True,\n", " 'boxplot.whiskerprops.color': 'black',\n", " 'boxplot.whiskerprops.linestyle': '-',\n", " 'boxplot.whiskerprops.linewidth': 1.0,\n", " 'boxplot.whiskers': 1.5,\n", " 'contour.algorithm': 'mpl2014',\n", " 'contour.corner_mask': True,\n", " 'contour.linewidth': None,\n", " 'contour.negative_linestyle': 'dashed',\n", " 'date.autoformatter.day': '%Y-%m-%d',\n", " 'date.autoformatter.hour': '%m-%d %H',\n", " 'date.autoformatter.microsecond': '%M:%S.%f',\n", " 'date.autoformatter.minute': '%d %H:%M',\n", " 'date.autoformatter.month': '%Y-%m',\n", " 'date.autoformatter.second': '%H:%M:%S',\n", " 'date.autoformatter.year': '%Y',\n", " 'date.converter': 'auto',\n", " 'date.epoch': '1970-01-01T00:00:00',\n", " 'date.interval_multiples': True,\n", " 'docstring.hardcopy': False,\n", " 'errorbar.capsize': 0.0,\n", " 'figure.autolayout': False,\n", " 'figure.constrained_layout.h_pad': 0.04167,\n", " 'figure.constrained_layout.hspace': 0.02,\n", " 'figure.constrained_layout.use': False,\n", " 'figure.constrained_layout.w_pad': 0.04167,\n", " 'figure.constrained_layout.wspace': 0.02,\n", " 'figure.dpi': 100.0,\n", " 'figure.edgecolor': 'white',\n", " 'figure.facecolor': 'white',\n", " 'figure.figsize': [6.4, 4.8],\n", " 'figure.frameon': True,\n", " 'figure.hooks': [],\n", " 'figure.labelsize': 'large',\n", " 'figure.labelweight': 'normal',\n", " 'figure.max_open_warning': 20,\n", " 'figure.raise_window': True,\n", " 'figure.subplot.bottom': 0.11,\n", " 'figure.subplot.hspace': 0.2,\n", " 'figure.subplot.left': 0.125,\n", " 'figure.subplot.right': 0.9,\n", " 'figure.subplot.top': 0.88,\n", " 'figure.subplot.wspace': 0.2,\n", " 'figure.titlesize': 'large',\n", " 'figure.titleweight': 'normal',\n", " 'font.cursive': ['Apple Chancery',\n", " 'Textile',\n", " 'Zapf Chancery',\n", " 'Sand',\n", " 'Script MT',\n", " 'Felipa',\n", " 'Comic Neue',\n", " 'Comic Sans MS',\n", " 'cursive'],\n", " 'font.family': ['sans-serif'],\n", " 'font.fantasy': ['Chicago',\n", " 'Charcoal',\n", " 'Impact',\n", " 'Western',\n", " 'xkcd script',\n", " 'fantasy'],\n", " 'font.monospace': ['DejaVu Sans Mono',\n", " 'Bitstream Vera Sans Mono',\n", " 'Computer Modern Typewriter',\n", " 'Andale Mono',\n", " 'Nimbus Mono L',\n", " 'Courier New',\n", " 'Courier',\n", " 'Fixed',\n", " 'Terminal',\n", " 'monospace'],\n", " 'font.sans-serif': ['DejaVu Sans',\n", " 'Bitstream Vera Sans',\n", " 'Computer Modern Sans Serif',\n", " 'Lucida Grande',\n", " 'Verdana',\n", " 'Geneva',\n", " 'Lucid',\n", " 'Arial',\n", " 'Helvetica',\n", " 'Avant Garde',\n", " 'sans-serif'],\n", " 'font.serif': ['DejaVu Serif',\n", " 'Bitstream Vera Serif',\n", " 'Computer Modern Roman',\n", " 'New Century Schoolbook',\n", " 'Century Schoolbook L',\n", " 'Utopia',\n", " 'ITC Bookman',\n", " 'Bookman',\n", " 'Nimbus Roman No9 L',\n", " 'Times New Roman',\n", " 'Times',\n", " 'Palatino',\n", " 'Charter',\n", " 'serif'],\n", " 'font.size': 10.0,\n", " 'font.stretch': 'normal',\n", " 'font.style': 'normal',\n", " 'font.variant': 'normal',\n", " 'font.weight': 'normal',\n", " 'grid.alpha': 1.0,\n", " 'grid.color': '#b0b0b0',\n", " 'grid.linestyle': '-',\n", " 'grid.linewidth': 0.8,\n", " 'hatch.color': 'black',\n", " 'hatch.linewidth': 1.0,\n", " 'hist.bins': 10,\n", " 'image.aspect': 'equal',\n", " 'image.cmap': 'viridis',\n", " 'image.composite_image': True,\n", " 'image.interpolation': 'auto',\n", " 'image.interpolation_stage': 'auto',\n", " 'image.lut': 256,\n", " 'image.origin': 'upper',\n", " 'image.resample': True,\n", " 'interactive': False,\n", " 'keymap.back': ['left', 'c', 'backspace', 'MouseButton.BACK'],\n", " 'keymap.copy': ['ctrl+c', 'cmd+c'],\n", " 'keymap.forward': ['right', 'v', 'MouseButton.FORWARD'],\n", " 'keymap.fullscreen': ['f', 'ctrl+f'],\n", " 'keymap.grid': ['g'],\n", " 'keymap.grid_minor': ['G'],\n", " 'keymap.help': ['f1'],\n", " 'keymap.home': ['h', 'r', 'home'],\n", " 'keymap.pan': ['p'],\n", " 'keymap.quit': ['ctrl+w', 'cmd+w', 'q'],\n", " 'keymap.quit_all': [],\n", " 'keymap.save': ['s', 'ctrl+s'],\n", " 'keymap.xscale': ['k', 'L'],\n", " 'keymap.yscale': ['l'],\n", " 'keymap.zoom': ['o'],\n", " 'legend.borderaxespad': 0.5,\n", " 'legend.borderpad': 0.4,\n", " 'legend.columnspacing': 2.0,\n", " 'legend.edgecolor': '0.8',\n", " 'legend.facecolor': 'inherit',\n", " 'legend.fancybox': True,\n", " 'legend.fontsize': 'medium',\n", " 'legend.framealpha': 0.8,\n", " 'legend.frameon': True,\n", " 'legend.handleheight': 0.7,\n", " 'legend.handlelength': 2.0,\n", " 'legend.handletextpad': 0.8,\n", " 'legend.labelcolor': 'None',\n", " 'legend.labelspacing': 0.5,\n", " 'legend.loc': 'best',\n", " 'legend.markerscale': 1.0,\n", " 'legend.numpoints': 1,\n", " 'legend.scatterpoints': 1,\n", " 'legend.shadow': False,\n", " 'legend.title_fontsize': None,\n", " 'lines.antialiased': True,\n", " 'lines.color': 'C0',\n", " 'lines.dash_capstyle': ,\n", " 'lines.dash_joinstyle': ,\n", " 'lines.dashdot_pattern': [6.4, 1.6, 1.0, 1.6],\n", " 'lines.dashed_pattern': [3.7, 1.6],\n", " 'lines.dotted_pattern': [1.0, 1.65],\n", " 'lines.linestyle': '-',\n", " 'lines.linewidth': 1.5,\n", " 'lines.marker': 'None',\n", " 'lines.markeredgecolor': 'auto',\n", " 'lines.markeredgewidth': 1.0,\n", " 'lines.markerfacecolor': 'auto',\n", " 'lines.markersize': 6.0,\n", " 'lines.scale_dashes': True,\n", " 'lines.solid_capstyle': ,\n", " 'lines.solid_joinstyle': ,\n", " 'macosx.window_mode': 'system',\n", " 'markers.fillstyle': 'full',\n", " 'mathtext.bf': 'sans:bold',\n", " 'mathtext.bfit': 'sans:italic:bold',\n", " 'mathtext.cal': 'cursive',\n", " 'mathtext.default': 'it',\n", " 'mathtext.fallback': 'cm',\n", " 'mathtext.fontset': 'dejavusans',\n", " 'mathtext.it': 'sans:italic',\n", " 'mathtext.rm': 'sans',\n", " 'mathtext.sf': 'sans',\n", " 'mathtext.tt': 'monospace',\n", " 'patch.antialiased': True,\n", " 'patch.edgecolor': 'black',\n", " 'patch.facecolor': 'C0',\n", " 'patch.force_edgecolor': False,\n", " 'patch.linewidth': 1.0,\n", " 'path.effects': [],\n", " 'path.simplify': True,\n", " 'path.simplify_threshold': 0.111111111111,\n", " 'path.sketch': None,\n", " 'path.snap': True,\n", " 'pcolor.shading': 'auto',\n", " 'pcolormesh.snap': True,\n", " 'pdf.compression': 6,\n", " 'pdf.fonttype': 3,\n", " 'pdf.inheritcolor': False,\n", " 'pdf.use14corefonts': False,\n", " 'pgf.preamble': '',\n", " 'pgf.rcfonts': True,\n", " 'pgf.texsystem': 'xelatex',\n", " 'polaraxes.grid': True,\n", " 'ps.distiller.res': 6000,\n", " 'ps.fonttype': 3,\n", " 'ps.papersize': 'letter',\n", " 'ps.useafm': False,\n", " 'ps.usedistiller': None,\n", " 'savefig.bbox': None,\n", " 'savefig.directory': '~',\n", " 'savefig.dpi': 'figure',\n", " 'savefig.edgecolor': 'auto',\n", " 'savefig.facecolor': 'auto',\n", " 'savefig.format': 'png',\n", " 'savefig.orientation': 'portrait',\n", " 'savefig.pad_inches': 0.1,\n", " 'savefig.transparent': False,\n", " 'scatter.edgecolors': 'face',\n", " 'scatter.marker': 'o',\n", " 'svg.fonttype': 'path',\n", " 'svg.hashsalt': None,\n", " 'svg.id': None,\n", " 'svg.image_inline': True,\n", " 'text.antialiased': True,\n", " 'text.color': 'black',\n", " 'text.hinting': 'force_autohint',\n", " 'text.hinting_factor': 8,\n", " 'text.kerning_factor': 0,\n", " 'text.latex.preamble': '',\n", " 'text.parse_math': True,\n", " 'text.usetex': False,\n", " 'timezone': 'UTC',\n", " 'tk.window_focus': False,\n", " 'toolbar': 'toolbar2',\n", " 'webagg.address': '127.0.0.1',\n", " 'webagg.open_in_browser': True,\n", " 'webagg.port': 8988,\n", " 'webagg.port_retries': 50,\n", " 'xaxis.labellocation': 'center',\n", " 'xtick.alignment': 'center',\n", " 'xtick.bottom': True,\n", " 'xtick.color': 'black',\n", " 'xtick.direction': 'out',\n", " 'xtick.labelbottom': True,\n", " 'xtick.labelcolor': 'inherit',\n", " 'xtick.labelsize': 'medium',\n", " 'xtick.labeltop': False,\n", " 'xtick.major.bottom': True,\n", " 'xtick.major.pad': 3.5,\n", " 'xtick.major.size': 3.5,\n", " 'xtick.major.top': True,\n", " 'xtick.major.width': 0.8,\n", " 'xtick.minor.bottom': True,\n", " 'xtick.minor.ndivs': 'auto',\n", " 'xtick.minor.pad': 3.4,\n", " 'xtick.minor.size': 2.0,\n", " 'xtick.minor.top': True,\n", " 'xtick.minor.visible': False,\n", " 'xtick.minor.width': 0.6,\n", " 'xtick.top': False,\n", " 'yaxis.labellocation': 'center',\n", " 'ytick.alignment': 'center_baseline',\n", " 'ytick.color': 'black',\n", " 'ytick.direction': 'out',\n", " 'ytick.labelcolor': 'inherit',\n", " 'ytick.labelleft': True,\n", " 'ytick.labelright': False,\n", " 'ytick.labelsize': 'medium',\n", " 'ytick.left': True,\n", " 'ytick.major.left': True,\n", " 'ytick.major.pad': 3.5,\n", " 'ytick.major.right': True,\n", " 'ytick.major.size': 3.5,\n", " 'ytick.major.width': 0.8,\n", " 'ytick.minor.left': True,\n", " 'ytick.minor.ndivs': 'auto',\n", " 'ytick.minor.pad': 3.4,\n", " 'ytick.minor.right': True,\n", " 'ytick.minor.size': 2.0,\n", " 'ytick.minor.visible': False,\n", " 'ytick.minor.width': 0.6,\n", " 'ytick.right': False})" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from matplotlib import rcParams\n", "rcParams" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Myynti 2017
Helsinki1321847
Turku852669
Tampere1032199
Oulu568230
\n", "
" ], "text/plain": [ " Myynti 2017\n", "Helsinki 1321847\n", "Turku 852669\n", "Tampere 1032199\n", "Oulu 568230" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Kaavio ilman oletusparametrien määrityksiä.\n", "df1 = pd.DataFrame({'Myynti 2017':[1321847, 852669, 1032199, 568230]},\n", " index=['Helsinki', 'Turku', 'Tampere', 'Oulu'])\n", "df1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Kaavio ennen oletusparametrien muutoksia" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Miljoonaa euroa')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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z5936JeiTZs2DtspqxRHjx7NlnOUpBYtWqhUqVKKjIy0t61atUonTpxI83xvZ926dZKk8PBwh/b69eurevXqqZ7+KlWqlOrXr+/QVrNmTeM5pmc+zpw5o/79+ysgIECurq5yc3NThQoVJEkxMTEZOpcVK1Zo4MCBevbZZzV48OBU+9N6Su1O+9JrxowZcnV1TTWXwL2EkATkQTabTT169NCXX36pjz/+WPfff78ee+yxNPsPHjxYCQkJmj17tiTpww8/VLly5dS2bVuHfkOHDlVsbKzWrFkjSZo6dapCQkJUp06dVGMWK1bMYTvlpuFr165l6dz+ytXVVV27dtWiRYt06dIlSbfuMypdurTxPqs7OX/+vKRbT9f9XZkyZez7U/z9HKVb52k6xzvNR3Jyspo3b66FCxfq//7v/7R27Vpt27ZNP/74o0O/9Fi1apXat2+vZs2aafbs2alCT7FixVKdiyT7fUtFixZN93uZnDt3TkuWLFGrVq1UqlSpLI0FOBMhCcijwsPDde7cOX388cfq0aPHbftWrlxZLVq00NSpU3X8+HEtWbJE/fv3V4ECBRz6NWnSRDVq1NCHH36ozZs3a9euXRo4cODdPI076tGjh/7880/NnTtXFy9e1JIlS9StWzeH2gsWLCjp1qPvf/X3e4xSgszJkydTvc+JEyfk7++f3eXb7du3T//97381ceJEDR48WI0aNdJDDz1kDGK3s2rVKrVr106hoaFasGCB3N3dU/UJDg7W3r17U7WntNWoUSNzJ/H/zZo1S9evX+eGbdzzCElAHlW2bFm9+uqrat26tbp3737H/kOHDtWePXvUvXt3FShQQH369DH2GzJkiL755huNGDFCJUuWVIcOHTJdY1qrLhlRvXp1NWjQQJGRkZozZ44SExNThcKUp+b27Nnj0L506VKH7SZNmkhSqhuvt2/frpiYGD3xxBNZqvV2UlZ7UlaYUnzyySfpHmP16tVq166dHn30US1evDjVWCmefvpp/fzzzw6P+t+8eVNffvmlGjRooDJlymTiDP5nxowZKlOmjFq0aJGlcQBnc3V2AQDunoiIiHT3bdasmYKCgrRu3Tp16dLF4Wmov+rSpYtGjBih77//Xq+//rpxpSK9goODNXfuXM2bN0+BgYEqWLCggoODMzxOz5491a9fP504cUINGzZU1apVHfa3bNlSRYsWVa9evfTGG2/I1dVVUVFROn78uEO/qlWrqm/fvvrggw/k4uKiFi1aKC4uTqNHj1ZAQIBefPHFTJ/rnVSrVk2VKlXS8OHDZVmWihYtqqVLl9ovbd7Jpk2b1K5dO5UqVUojR47U7t27HfYHBQXZf29Wz549NXXqVHXo0EEREREqUaKEpk2bpoMHD+rbb791OO7o0aPavn27pFtP30my/xbvihUrql69eg79t27dqv3792vkyJGpViKBew0rSQDsOnbsKEnGG7FTeHp6qnXr1nJ1dVX//v2z9H7jx49XaGio+vTpo/r166t169aZGucf//iHPD099dtvvxkvLfr6+mrlypXy8fFRly5d1L9/f9WoUUOjRo1K1fejjz5SRESEli9frqeeekqjRo1S8+bNtXnz5gxf+soINzc3LV26VPfff7/69eun5557TmfOnEkVWtLy7bff6tq1a4qLi1OTJk0UEhLi8Nq1a5e9r4eHh9auXavGjRtr8ODBat26tU6ePKkVK1akelx/3bp16tChgzp06KCVK1dKkn37ww8/TFXHjBkzZLPZ1KtXryzMBpA78Bu3AdjVq1dPNpvNvnJgcv36dVWsWFGPPvqo5s+fn4PVAUDO4nIbkM/Fx8dr3759WrZsmXbu3JnmL3Q8e/asDh48qMjISJ0+fVrDhw/P4UoBIGcRkoB8bteuXWrcuLGKFSumsWPHql27dsZ+33zzjXr06KHSpUtr2rRpxsf+ASAv4XIbAACAATduAwAAGBCSAAAADAhJAAAABty4nQXJyck6ceKEfHx8suUPQgIAgLvPsiwlJCSoTJkycnFJe72IkJQFJ06cUEBAgLPLAAAAmXD8+HGVK1cuzf2EpCzw8fGRdGuSU37dPwAAyN3i4+MVEBBg/zmeFkJSFqRcYvP19SUkAQBwj7nTrTLcuA0AAGBASAIAADAgJAEAABgQkgAAAAwISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMCAkAQAAGBCSAAAADAhJAAAABoQkAAAAA0ISAACAASEJAADAgJAEAABgQEgCAAAwICQBAAAYEJIAAAAMXJ1dQF5QY+wquXh4ObsMIFeLi2jl7BIAIENYSQIAADAgJAEAABgQkgAAAAwISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMCAkAQAAGBCSAAAADAhJAAAABoQkAAAAA0ISAACAASEJAADAgJAEAABgQEgCAAAwyBchKS4uTjabTbt373Z2KQAA4B6R60PS8ePH1atXL5UpU0bu7u6qUKGChg4dqvPnzzu7NAAAkIfl6pD066+/ql69ejp06JCio6P1yy+/6OOPP9batWsVEhKiCxcuOLtEAACQR+XqkDRw4EC5u7tr9erVCg0NVfny5dWiRQt9++23+v333zVq1ChJks1m0+LFix2OLVy4sKKioozjRkVFqXDhwg5tixcvls1muwtnAQAA7kW5NiRduHBBq1at0oABA+Tp6emwr1SpUurcubPmzZsny7JyrKbExETFx8c7vAAAQN6Ua0NSbGysLMtS9erVjfurV6+uixcv6uzZszlW04QJE+Tn52d/BQQE5Nh7AwCAnJVrQ9KdpKwg5eQlshEjRujy5cv21/Hjx3PsvQEAQM7KtSGpcuXKstlsOnDggHH/zz//rCJFisjf3182my3VZbcbN26kObaLi0uG+qfw8PCQr6+vwwsAAORNuTYkFStWTM2aNdO0adN07do1h32nTp3S7Nmz1alTJ9lsNhUvXlwnT56074+NjdXVq1fTHLt48eJKSEjQlStX7G38DiUAAPBXuTYkSdKHH36oxMREhYWF6fvvv9fx48e1cuVKNWvWTGXLltU///lPSVKTJk304YcfateuXdqxY4f69+8vNze3NMdt0KCBvLy8NHLkSP3yyy+aM2dOmk/CAQCA/ClXh6QqVapox44dqlSpkjp16qRKlSqpb9++aty4sbZs2aKiRYtKkiZNmqSAgAA9/vjjev755/XKK6/Iy8srzXGLFi2qL7/8UsuXL1dwcLCio6M1bty4HDorAABwL7BZOfkMfR4THx9/6ym3YfPl4pF2KAMgxUW0cnYJACDpfz+/L1++fNv7i3P1ShIAAICzEJIAAAAMCEkAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBASAIAADAgJAEAABgQkgAAAAwISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMHB1dgF5wb7xYfL19XV2GQAAIBuxkgQAAGBASAIAADAgJAEAABgQkgAAAAwISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMCAkAQAAGBCSAAAADAhJAAAABoQkAAAA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xEoSAACAASEJAADAgJAEAABgQEgCAAAwICTdxrRp03TfffepYMGCqlu3rjZu3Hjb/hs2bFDdunVVsGBBBQYG6uOPP86hSp0jI/OzcOFCNWvWTMWLF5evr69CQkK0atWqHKw2Z2X0eyfFDz/8IFdXVz344IN3t0Any+j8JCYmatSoUapQoYI8PDxUqVIlzZw5M4eqzVkZnZvZs2erVq1a8vLyUunSpdWjRw/7n0zKS77//nu1bt1aZcqUkc1m0+LFi+94TH76TM7o/OS3z+RMs2A0d+5cy83Nzfrss8+sAwcOWEOHDrW8vb2to0ePGvv/+uuvlpeXlzV06FDrwIED1meffWa5ublZX331VQ5XnjMyOj9Dhw61/v3vf1vbtm2zDh06ZI0YMcJyc3Ozdu3alcOV330ZnZsUly5dsgIDA63mzZtbtWrVyplinSAz89OmTRurQYMG1po1a6wjR45YW7dutX744YccrDpnZHRuNm7caLm4uFjvvfee9euvv1obN260HnjgAatdu3Y5XPndt3z5cmvUqFHWggULLEnWokWLbts/v30mZ3R+8tNnclYQktJQv359q3///g5t1apVs4YPH27s/3//939WtWrVHNr69etnPfzww3etRmfK6PyYBAUFWePHj8/u0pwus3PTqVMn6/XXX7fGjh2bp0NSRudnxYoVlp+fn3X+/PmcKM+pMjo3EydOtAIDAx3a3n//fatcuXJ3rcbcID0hIL99Jv9VeubHJK9+JmcFl9sMrl+/rp07d6p58+YO7c2bN9fmzZuNx2zZsiVV/7CwMO3YsUM3bty4a7U6Q2bm5++Sk5OVkJBg/yPBeUVm5yYyMlKHDx/W2LFj73aJTpWZ+VmyZInq1aunt99+W2XLltX999+vV155RdeuXcuJknNMZuamYcOG+u2337R8+XJZlqXTp0/rq6++UqtWrXKi5FwtP30mZ4e8+pmcVfyBW4Nz584pKSlJJUuWdGgvWbKkTp06ZTzm1KlTxv43b97UuXPnVLp06btWb07LzPz83aRJk3TlyhV17NjxbpToNJmZm9jYWA0fPlwbN26Uq2ve/l8yM/Pz66+/atOmTSpYsKAWLVqkc+fOacCAAbpw4UKeui8pM3PTsGFDzZ49W506ddKff/6pmzdvqk2bNvrggw9youRcLT99JmeHvPqZnFWsJN2GzWZz2LYs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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(df1/1000000).plot(kind='barh', legend=False)\n", "plt.title('Myynti vuonna 2017')\n", "plt.xlabel('Miljoonaa euroa')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Kaavio oletusparametrien säätämisen jälkeen\n", "\n", "Seuraavassa määritetään:\n", "- pääteviivallinen fontti (**serif**)\n", "- fonttilaji **Times New Roman**\n", "- akselien asteikkojen nimiöille (**xtick.labelsize**, **yticklabelsize**) fonttikoko 8\n", "- kuvion oletuskoko **4 x 3**." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "rcParams['font.family'] = 'serif'\n", "rcParams['font.serif'] = ['Times New Roman']\n", "rcParams['xtick.labelsize'] = 8\n", "rcParams['ytick.labelsize'] = 8\n", "rcParams['figure.figsize'] = [4, 3]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Miljoonaa euroa')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(df1/1000000).plot(kind='barh', legend=False)\n", "plt.title('Myynti vuonna 2017')\n", "plt.xlabel('Miljoonaa euroa')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Lisätietoa\n", "\n", "Löydät kaikki muistiot osoitteesta https://tilastoapu.wordpress.com/python." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.9" } }, "nbformat": 4, "nbformat_minor": 4 }