最近忙着寫大論文,用Python畫論文里一個示意圖,效果還不錯,順便總結一下。
一,直接上代碼
-
# -*- coding: utf-8 -*-
-
import numpy as np
-
import matplotlib.pyplot as plt
-
-
plt.rcParams[ 'font.sans-serif']=['SimHei']
-
plt.rcParams[ 'axes.unicode_minus'] = False
-
#matplotlib畫圖中中文顯示會有問題,需要這兩行設置默認字體
-
-
plt.xlabel( 'X')
-
plt.ylabel( 'Y')
-
plt.xlim(xmax= 9,xmin=0)
-
plt.ylim(ymax= 9,ymin=0)
-
#畫兩條(0-9)的坐標軸並設置軸標簽x,y
-
-
x1 = np.random.normal( 2,1.2,300) # 隨機產生300個平均值為2,方差為1.2的浮點數,即第一簇點的x軸坐標
-
y1 = np.random.normal( 2,1.2,300) # 隨機產生300個平均值為2,方差為1.2的浮點數,即第一簇點的y軸坐標
-
x2 = np.random.normal( 7.5,1.2,300)
-
y2 = np.random.normal( 7.5,1.2,300)
-
colors1 = '#00CED1' #點的顏色
-
colors2 = '#DC143C'
-
area = np.pi * 4**2 # 點面積
-
# 畫散點圖
-
plt.scatter(x1, y1, s=area, c=colors1, alpha= 0.4, label='類別A')
-
plt.scatter(x2, y2, s=area, c=colors2, alpha= 0.4, label='類別B')
-
plt.plot([ 0,9.5],[9.5,0],linewidth = '0.5',color='#000000')
-
plt.legend()
-
plt.savefig( r'C:\Users\jichao\Desktop\大論文\12345svm.png', dpi=300)
-
plt.show()
二,效果
畫出來的效果我個人還是挺滿意的,好看!
三,代碼分析
上圖用到的主要就是matplotlib.pyplot模塊下的一些函數,更多關於matplotlib庫的知識還是直接看官方文檔比較好:https://matplotlib.org/index.html
1,rcParams
rcParams用來設置畫圖時的一些基本參數
2,scatter
matplotlib.pyplot.
scatter
(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)
x,y——設置點的位置
s——點的大小
c——點的顏色
marker——點的形狀
cmap——可以用來控制顏色漸變,具體用法,見例子http://blog.sina.com.cn/s/blog_c39df0460102xifx.html
norm——亮度
vmin,vmax——標准化亮度
alpha——點的透明度,透明度設置的好能夠使圖好看
linewidths,verts,edgcolors——點邊緣線寬,(x,y)的序列,邊緣線顏色
**kwargs——以字典方式輸入參數
3,savefig
-
savefig(fname, dpi=None, facecolor='w', edgecolor='w',
-
orientation='portrait', papertype=None, format=None,
-
transparent=False, bbox_inches=None, pad_inches=0.1,
-
frameon=None, metadata=None)
主要用到的參數就兩個,fname——保存路徑;dpi——每英寸像素數,可以理解為清晰度或細膩度
四,配色
這兩行代碼中——'#00CED1'——為顏色值
-
colors1 = '#00CED1' # 點的顏色
-
colors2 = '#DC143C'
所有顏色的名字及值:
1 'aliceblue': '#F0F8FF', 2 'antiquewhite': '#FAEBD7', 3 'aqua': '#00FFFF', 4 'aquamarine': '#7FFFD4', 5 'azure': '#F0FFFF', 6 'beige': '#F5F5DC', 7 'bisque': '#FFE4C4', 8 'black': '#000000', 9 'blanchedalmond': '#FFEBCD', 10 'blue': '#0000FF', 11 'blueviolet': '#8A2BE2', 12 'brown': '#A52A2A', 13 'burlywood': '#DEB887', 14 'cadetblue': '#5F9EA0', 15 'chartreuse': '#7FFF00', 16 'chocolate': '#D2691E', 17 'coral': '#FF7F50', 18 'cornflowerblue': '#6495ED', 19 'cornsilk': '#FFF8DC', 20 'crimson': '#DC143C', 21 'cyan': '#00FFFF', 22 'darkblue': '#00008B', 23 'darkcyan': '#008B8B', 24 'darkgoldenrod': '#B8860B', 25 'darkgray': '#A9A9A9', 26 'darkgreen': '#006400', 27 'darkkhaki': '#BDB76B', 28 'darkmagenta': '#8B008B', 29 'darkolivegreen': '#556B2F', 30 'darkorange': '#FF8C00', 31 'darkorchid': '#9932CC', 32 'darkred': '#8B0000', 33 'darksalmon': '#E9967A', 34 'darkseagreen': '#8FBC8F', 35 'darkslateblue': '#483D8B', 36 'darkslategray': '#2F4F4F', 37 'darkturquoise': '#00CED1', 38 'darkviolet': '#9400D3', 39 'deeppink': '#FF1493', 40 'deepskyblue': '#00BFFF', 41 'dimgray': '#696969', 42 'dodgerblue': '#1E90FF', 43 'firebrick': '#B22222', 44 'floralwhite': '#FFFAF0', 45 'forestgreen': '#228B22', 46 'fuchsia': '#FF00FF', 47 'gainsboro': '#DCDCDC', 48 'ghostwhite': '#F8F8FF', 49 'gold': '#FFD700', 50 'goldenrod': '#DAA520', 51 'gray': '#808080', 52 'green': '#008000', 53 'greenyellow': '#ADFF2F', 54 'honeydew': '#F0FFF0', 55 'hotpink': '#FF69B4', 56 'indianred': '#CD5C5C', 57 'indigo': '#4B0082', 58 'ivory': '#FFFFF0', 59 'khaki': '#F0E68C', 60 'lavender': '#E6E6FA', 61 'lavenderblush': '#FFF0F5', 62 'lawngreen': '#7CFC00', 63 'lemonchiffon': '#FFFACD', 64 'lightblue': '#ADD8E6', 65 'lightcoral': '#F08080', 66 'lightcyan': '#E0FFFF', 67 'lightgoldenrodyellow': '#FAFAD2', 68 'lightgreen': '#90EE90', 69 'lightgray': '#D3D3D3', 70 'lightpink': '#FFB6C1', 71 'lightsalmon': '#FFA07A', 72 'lightseagreen': '#20B2AA', 73 'lightskyblue': '#87CEFA', 74 'lightslategray': '#778899', 75 'lightsteelblue': '#B0C4DE', 76 'lightyellow': '#FFFFE0', 77 'lime': '#00FF00', 78 'limegreen': '#32CD32', 79 'linen': '#FAF0E6', 80 'magenta': '#FF00FF', 81 'maroon': '#800000', 82 'mediumaquamarine': '#66CDAA', 83 'mediumblue': '#0000CD', 84 'mediumorchid': '#BA55D3', 85 'mediumpurple': '#9370DB', 86 'mediumseagreen': '#3CB371', 87 'mediumslateblue': '#7B68EE', 88 'mediumspringgreen': '#00FA9A', 89 'mediumturquoise': '#48D1CC', 90 'mediumvioletred': '#C71585', 91 'midnightblue': '#191970', 92 'mintcream': '#F5FFFA', 93 'mistyrose': '#FFE4E1', 94 'moccasin': '#FFE4B5', 95 'navajowhite': '#FFDEAD', 96 'navy': '#000080', 97 'oldlace': '#FDF5E6', 98 'olive': '#808000', 99 'olivedrab': '#6B8E23', 100 'orange': '#FFA500', 101 'orangered': '#FF4500', 102 'orchid': '#DA70D6', 103 'palegoldenrod': '#EEE8AA', 104 'palegreen': '#98FB98', 105 'paleturquoise': '#AFEEEE', 106 'palevioletred': '#DB7093', 107 'papayawhip': '#FFEFD5', 108 'peachpuff': '#FFDAB9', 109 'peru': '#CD853F', 110 'pink': '#FFC0CB', 111 'plum': '#DDA0DD', 112 'powderblue': '#B0E0E6', 113 'purple': '#800080', 114 'red': '#FF0000', 115 'rosybrown': '#BC8F8F', 116 'royalblue': '#4169E1', 117 'saddlebrown': '#8B4513', 118 'salmon': '#FA8072', 119 'sandybrown': '#FAA460', 120 'seagreen': '#2E8B57', 121 'seashell': '#FFF5EE', 122 'sienna': '#A0522D', 123 'silver': '#C0C0C0', 124 'skyblue': '#87CEEB', 125 'slateblue': '#6A5ACD', 126 'slategray': '#708090', 127 'snow': '#FFFAFA', 128 'springgreen': '#00FF7F', 129 'steelblue': '#4682B4', 130 'tan': '#D2B48C', 131 'teal': '#008080', 132 'thistle': '#D8BFD8', 133 'tomato': '#FF6347', 134 'turquoise': '#40E0D0', 135 'violet': '#EE82EE', 136 'wheat': '#F5DEB3', 137 'white': '#FFFFFF', 138 'whitesmoke': '#F5F5F5', 139 'yellow': '#FFFF00', 140 'yellowgreen': '#9ACD32'