5 분 소요

[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()

댓글남기기