Make a rough sketch and Anatomy of a figure
[Notice] [visualization_practice_2]
Make a rough sketch
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
## make data
data = np.arange(1, 100)
data
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])
Single graph
plt.plot(data)
plt.show()
Multiple graph
data = np.arange(1, 51)
data2 = np.arange(51, 101)
plt.plot(data)
#plt.figure()
plt.plot(data)
plt.plot(data2)
plt.plot(data2 + 50)
plt.show()
Draw multiple graphs divided by figure
data = np.arange(100, 201)
data2 = np.arange(200, 301)
plt.plot(data)
plt.figure()
plt.plot(data2)
plt.show()
How to draw multiple plots(subplot)
sublot(row, column, index)
data = np.arange(100, 201)
plt.subplot(2,1,1)
plt.plot(data)
data2 = np.arange(200, 301)
plt.subplot(2,1,2)
plt.plot(data2)
plt.show()
data = np.arange(100, 201)
plt.subplot(1,2,1)
plt.plot(data)
data2 = np.arange(200, 301)
plt.subplot(1,2,2)
plt.plot(data2)
plt.show()
Same with above graph but do not need to use comma in subplot()
data = np.arange(100, 201)
plt.subplot(211)
plt.plot(data)
data2 = np.arange(200, 301)
plt.subplot(212)
plt.plot(data2)
plt.show()
data = np.arange(100, 201)
plt.subplot(131)
plt.plot(data)
data2 = np.arange(200, 301)
plt.subplot(132)
plt.plot(data2)
data3 = np.arange(300, 401)
plt.subplot(133)
plt.plot(data3)
plt.rcParams["figure.figsize"] = (15, 10)
plt.show()
plt.sublots(a number of row, a number of column)
#data
data = np.arange(1, 51)
# rough sketch
fig, axes = plt.subplots(2, 3)
axes[0,0].plot(data)
axes[0,1].plot(data * data)
axes[0,2].plot(data ** 3)
axes[1,0].plot(data % 10)
axes[1,1].plot(-data)
axes[1,2].plot(data // 20)
plt.tight_layout()
plt.show()
Title and Label
from IPython.display import Image
# source : matplotlib.org
Image("https://matplotlib.org/_images/anatomy.png")
title
plt.plot([1, 2, 3], [3, 6, 9])
plt.plot([1, 2, 3], [2, 4, 9])
plt.title('This is title')
plt.show()
plt.plot([1, 2, 3], [3, 6, 9])
plt.plot([1, 2, 3], [2, 4, 9])
#title and font size
plt.title('This is title', fontsize = 20)
plt.show()
X,Y axis label setting
plt.plot([1, 2, 3], [3, 6, 9])
plt.plot([1, 2, 3], [2, 4, 9])
#title and font size
plt.title('X,Y axis label setting', fontsize = 20)
#X,Y axis Label
plt.xlabel('X axis', fontsize = 20)
plt.ylabel('Y axis', fontsize = 20)
plt.show()
Tick setting
plt.plot(np.arange(10), np.arange(10)*2)
plt.plot(np.arange(10), np.arange(10)**2)
plt.plot(np.arange(10), np.log(np.arange(10)))
#title and font size
plt.title('Tick setting', fontsize = 20)
#X,Y axis Label
plt.xlabel('X axis', fontsize = 20)
plt.ylabel('Y axis', fontsize = 20)
#x tick, y tick setting
plt.xticks(rotation = 90)
plt.yticks(rotation = 30)
plt.show()
/var/folders/0v/dgc0jc1x1c1bq1k7s0qykzpc0000gn/T/ipykernel_34385/3134676052.py:3: RuntimeWarning: divide by zero encountered in log plt.plot(np.arange(10), np.log(np.arange(10)))
Legend setting
plt.plot(np.arange(10), np.arange(10)*2)
plt.plot(np.arange(10), np.arange(10)**2)
plt.plot(np.arange(10), np.log(np.arange(10)))
#title and font size
plt.title('Tick setting', fontsize = 20)
#X,Y axis Label
plt.xlabel('X axis', fontsize = 20)
plt.ylabel('Y axis', fontsize = 20)
#x tick, y tick setting
plt.xticks(rotation = 90)
plt.yticks(rotation = 30)
# legend setting
plt.legend(['10 * 2', '10 ** 2', 'log'], fontsize = 15)
plt.show()
/var/folders/0v/dgc0jc1x1c1bq1k7s0qykzpc0000gn/T/ipykernel_34385/3934359072.py:3: RuntimeWarning: divide by zero encountered in log plt.plot(np.arange(10), np.log(np.arange(10)))
X and Y Limit setting
xlim(), ylim()
plt.plot(np.arange(10), np.arange(10)*2)
plt.plot(np.arange(10), np.arange(10)**2)
plt.plot(np.arange(10), np.log(np.arange(10)))
#title and font size
plt.title('Tick setting', fontsize = 20)
#X,Y axis Label
plt.xlabel('X axis', fontsize = 20)
plt.ylabel('Y axis', fontsize = 20)
#x tick, y tick setting
plt.xticks(rotation = 90)
plt.yticks(rotation = 30)
# x, y limit setting
plt.xlim(0, 5)
plt.ylim(0.5, 10)
plt.show()
/var/folders/0v/dgc0jc1x1c1bq1k7s0qykzpc0000gn/T/ipykernel_34385/3411647084.py:3: RuntimeWarning: divide by zero encountered in log plt.plot(np.arange(10), np.log(np.arange(10)))
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html#matplotlib.pyplot.plot
marker
plt.plot(np.arange(10), np.arange(10)*2, marker = 'o', markersize = 5)
plt.plot(np.arange(10), np.arange(10)*2 - 10, marker = 'v', markersize = 10)
plt.plot(np.arange(10), np.arange(10)*2 - 20, marker = '+', markersize = 15)
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker = '*', markersize = 20)
#title and font size
plt.title('marker setting', fontsize = 20)
#X,Y axis Label
plt.xlabel('X axis', fontsize = 20)
plt.ylabel('Y axis', fontsize = 20)
#x tick, y tick setting
plt.xticks(rotation = 90)
plt.yticks(rotation = 30)
plt.show()
type of line
-
’-‘ solid style
-
’–’ dashed line style
-
’-.’ dash-dot line style
-
’:’ datted line style
plt.plot(np.arange(10), np.arange(10)*2, marker = 'o', linestyle = '')
plt.plot(np.arange(10), np.arange(10)*2 - 10, marker = 'o', linestyle = '-')
plt.plot(np.arange(10), np.arange(10)*2 - 20, marker = 'v', linestyle = '--')
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker = '+', linestyle = '-.')
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker = '*', linestyle = ':')
#title and font size
plt.title('different types of lines', fontsize = 20)
#X,Y axis Label
plt.xlabel('X axis', fontsize = 20)
plt.ylabel('Y axis', fontsize = 20)
#x tick, y tick setting
plt.xticks(rotation = 90)
plt.yticks(rotation = 30)
plt.show()
color
-
‘b’ blue
-
‘g’ green
-
‘r’ red
-
‘c’ cyan
-
‘m’ magenta
-
‘y’ yellow
-
‘k’ black
-
‘w’ white
plt.plot(np.arange(10), np.arange(10)*2, marker = 'o', linestyle = '', color = 'b')
plt.plot(np.arange(10), np.arange(10)*2 - 10, marker = 'o', linestyle = '-', color = 'c')
plt.plot(np.arange(10), np.arange(10)*2 - 20, marker = 'v', linestyle = '--', color = 'y')
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker = '+', linestyle = '-.', color = 'r')
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker = '*', linestyle = ':', color = 'k')
#title and font size
plt.title('various color', fontsize = 20)
#X,Y axis Label
plt.xlabel('X axis', fontsize = 20)
plt.ylabel('Y axis', fontsize = 20)
#x tick, y tick setting
plt.xticks(rotation = 90)
plt.yticks(rotation = 30)
plt.show()
transparency
plt.plot(np.arange(10), np.arange(10)*2, marker = 'o', linestyle = '', color = 'b', alpha = 0.1)
plt.plot(np.arange(10), np.arange(10)*2 - 10, marker = 'o', linestyle = '-', color = 'c', alpha = 0.3)
plt.plot(np.arange(10), np.arange(10)*2 - 20, marker = 'v', linestyle = '--', color = 'y', alpha = 0.6)
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker = '+', linestyle = '-.', color = 'r', alpha = 1.0)
#title and font size
plt.title('alpha setting', fontsize = 20)
#X,Y axis Label
plt.xlabel('X axis', fontsize = 20)
plt.ylabel('Y axis', fontsize = 20)
#x tick, y tick setting
plt.xticks(rotation = 90)
plt.yticks(rotation = 30)
plt.show()
grid setting
plt.plot(np.arange(10), np.arange(10)*2, marker = 'o', linestyle = '', color = 'b', alpha = 0.1)
plt.plot(np.arange(10), np.arange(10)*2 - 10, marker = 'o', linestyle = '-', color = 'c', alpha = 0.3)
plt.plot(np.arange(10), np.arange(10)*2 - 20, marker = 'v', linestyle = '--', color = 'y', alpha = 0.6)
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker = '+', linestyle = '-.', color = 'r', alpha = 1.0)
#title and font size
plt.title('alpha setting', fontsize = 20)
#X,Y axis Label
plt.xlabel('X axis', fontsize = 20)
plt.ylabel('Y axis', fontsize = 20)
#x tick, y tick setting
plt.xticks(rotation = 90)
plt.yticks(rotation = 30)
#grid setting
plt.grid()
plt.show()
댓글남기기