{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "i6yO30PVE8fQ" }, "source": [ "# matplotlib tutorial (1) nitta@tsuda.ac.jp\n", "\n", "matplotlib is a very flexible system, and there are many ways to write it to achive a certain function. This is a useful feature at first glance, but it seems to be one of the reasons why matplotlib is confusing for beginners.\n", "\n", "Therefore, at least for beginners, we recommend that you follow the rules in this article and start using matplotlib.\n" ] }, { "cell_type": "markdown", "metadata": { "id": "b8QgF5H0M8rg" }, "source": [ "
ax
with the following code.fig, ax = plt.subplots(rows, cols, figsize=(width * cols, height * rows))
plt.show()
only once at the end. plt
, not for each coordinate system.plt.show()
plt.savefig()
.plt
instead of each coordinate system.\n",
"The default resolution is low, so specify a resolution such as dpi=6400
.plt.savefig(filepath,dpi=dpi)
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "x4OlLfueFGO2"
},
"source": [
"# Chapter 1: Understanding the Coordinate System (Axes Object)\n",
"\n",
"## 1-1: When ax is one coordinate system\n",
"\n",
"If rows == 1 and cols == 1
in the function call of plt.subplots()
, one coordinate system (Axes object) is returned to ax
, so drawing commands are issued for this ax
. \n",
"\n",
"fig, ax = plt.subplots(1, 1, ...)
plt.show()
draws it inline in the jupyter notebook page.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 374
},
"executionInfo": {
"elapsed": 592,
"status": "ok",
"timestamp": 1648474514444,
"user": {
"displayName": "Yoshihisa Nitta",
"photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgJLeg9AmjfexROvC3P0wzJdd5AOGY_VOu-nxnh=s64",
"userId": "15888006800030996813"
},
"user_tz": -540
},
"id": "IKDLzi6RE59P",
"outputId": "c2bc000f-202f-46a0-dc3c-eac80638877a"
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"