python中matplotlib的顏色以及形狀實例詳解

繪制折線圖

命令形如:

# 常用
plt.plot(x, y, linewidth = '1', label = "test", color=' red ', linestyle=':', marker='|')

# 所有可選參數
plt.plot(x,y,color,linestyle=,linewidth,marker,markeredgecolor,markeredgwidth,markerfacecolor,markersize,label)

plt.legend(loc='upper left')
plt.show()

主要參數詳解:

線條形式(linestyle):

標記字符 還可使用 說明
‘-’ “solid” 實線
‘–’ “dashed” 破折線
‘-.’ “dashdot” 點劃線
‘:’ “dotted” 虛線
’ ’ ‘none’ 無線條

標註形狀(marker):

標記字符 還可使用 說明
‘.’ point marker 點標記
‘,’ pixel marker 像素標記(極小點)
‘o’ circle marker 實心圈標記
‘v’ triangle_down marker 倒三角標記
‘^’ triangle_up marker 上三角標記
‘<’ triangle_left marker 左三角標記
‘>’ triangle_right marker 右三角標記
‘1’ tri_down marker 下花三角標記
‘2’ tri_up marker 上花三角標記
‘3’ tri_left marker 左花三角標記
‘4’ tri_right marker 右花三角標記
‘s’ square marker 實心方形標記
‘p’ pentagon marker 實心五角標記
‘*’ star marker 星形標記
‘h’ hexagon1 marker 豎六邊形標記
‘H’ hexagon2 marker 橫六邊形標記
‘+’ plus marker 十字標記
‘x’ x marker x標記
‘D’ diamond marker 菱形標記
‘d’ thin_diamond marker 受菱形標記
‘|’ vline marker 垂直線標記
‘_’ hline marker 水平線標記

顏色(color),可用十六進制形式,每兩個十六進制數分別代表R、G、B分量,可用如下代碼展示所有:

import matplotlib
for name, hex in matplotlib.colors.cnames.items():
    print(name, hex)

得所有支持顏色:

 cnames = {
    'aliceblue':            '#F0F8FF',
    'antiquewhite':         '#FAEBD7',
    'aqua':                 '#00FFFF',
    'aquamarine':           '#7FFFD4',
    'azure':                '#F0FFFF',
    'beige':                '#F5F5DC',
    'bisque':               '#FFE4C4',
    'black':                '#000000',
    'blanchedalmond':       '#FFEBCD',
    'blue':                 '#0000FF',
    'blueviolet':           '#8A2BE2',
    'brown':                '#A52A2A',
    'burlywood':            '#DEB887',
    'cadetblue':            '#5F9EA0',
    'chartreuse':           '#7FFF00',
    'chocolate':            '#D2691E',
    'coral':                '#FF7F50',
    'cornflowerblue':       '#6495ED',
    'cornsilk':             '#FFF8DC',
    'crimson':              '#DC143C',
    'cyan':                 '#00FFFF',
    'darkblue':             '#00008B',
    'darkcyan':             '#008B8B',
    'darkgoldenrod':        '#B8860B',
    'darkgray':             '#A9A9A9',
    'darkgreen':            '#006400',
    'darkkhaki':            '#BDB76B',
    'darkmagenta':          '#8B008B',
    'darkolivegreen':       '#556B2F',
    'darkorange':           '#FF8C00',
    'darkorchid':           '#9932CC',
    'darkred':              '#8B0000',
    'darksalmon':           '#E9967A',
    'darkseagreen':         '#8FBC8F',
    'darkslateblue':        '#483D8B',
    'darkslategray':        '#2F4F4F',
    'darkturquoise':        '#00CED1',
    'darkviolet':           '#9400D3',
    'deeppink':             '#FF1493',
    'deepskyblue':          '#00BFFF',
    'dimgray':              '#696969',
    'dodgerblue':           '#1E90FF',
    'firebrick':            '#B22222',
    'floralwhite':          '#FFFAF0',
    'forestgreen':          '#228B22',
    'fuchsia':              '#FF00FF',
    'gainsboro':            '#DCDCDC',
    'ghostwhite':           '#F8F8FF',
    'gold':                 '#FFD700',
    'goldenrod':            '#DAA520',
    'gray':                 '#808080',
    'green':                '#008000',
    'greenyellow':          '#ADFF2F',
    'honeydew':             '#F0FFF0',
    'hotpink':              '#FF69B4',
    'indianred':            '#CD5C5C',
    'indigo':               '#4B0082',
    'ivory':                '#FFFFF0',
    'khaki':                '#F0E68C',
    'lavender':             '#E6E6FA',
    'lavenderblush':        '#FFF0F5',
    'lawngreen':            '#7CFC00',
    'lemonchiffon':         '#FFFACD',
    'lightblue':            '#ADD8E6',
    'lightcoral':           '#F08080',
    'lightcyan':            '#E0FFFF',
    'lightgoldenrodyellow': '#FAFAD2',
    'lightgreen':           '#90EE90',
    'lightgray':            '#D3D3D3',
    'lightpink':            '#FFB6C1',
    'lightsalmon':          '#FFA07A',
    'lightseagreen':        '#20B2AA',
    'lightskyblue':         '#87CEFA',
    'lightslategray':       '#778899',
    'lightsteelblue':       '#B0C4DE',
    'lightyellow':          '#FFFFE0',
    'lime':                 '#00FF00',
    'limegreen':            '#32CD32',
    'linen':                '#FAF0E6',
    'magenta':              '#FF00FF',
    'maroon':               '#800000',
    'mediumaquamarine':     '#66CDAA',
    'mediumblue':           '#0000CD',
    'mediumorchid':         '#BA55D3',
    'mediumpurple':         '#9370DB',
    'mediumseagreen':       '#3CB371',
    'mediumslateblue':      '#7B68EE',
    'mediumspringgreen':    '#00FA9A',
    'mediumturquoise':      '#48D1CC',
    'mediumvioletred':      '#C71585',
    'midnightblue':         '#191970',
    'mintcream':            '#F5FFFA',
    'mistyrose':            '#FFE4E1',
    'moccasin':             '#FFE4B5',
    'navajowhite':          '#FFDEAD',
    'navy':                 '#000080',
    'oldlace':              '#FDF5E6',
    'olive':                '#808000',
    'olivedrab':            '#6B8E23',
    'orange':               '#FFA500',
    'orangered':            '#FF4500',
    'orchid':               '#DA70D6',
    'palegoldenrod':        '#EEE8AA',
    'palegreen':            '#98FB98',
    'paleturquoise':        '#AFEEEE',
    'palevioletred':        '#DB7093',
    'papayawhip':           '#FFEFD5',
    'peachpuff':            '#FFDAB9',
    'peru':                 '#CD853F',
    'pink':                 '#FFC0CB',
    'plum':                 '#DDA0DD',
    'powderblue':           '#B0E0E6',
    'purple':               '#800080',
    'red':                  '#FF0000',
    'rosybrown':            '#BC8F8F',
    'royalblue':            '#4169E1',
    'saddlebrown':          '#8B4513',
    'salmon':               '#FA8072',
    'sandybrown':           '#FAA460',
    'seagreen':             '#2E8B57',
    'seashell':             '#FFF5EE',
    'sienna':               '#A0522D',
    'silver':               '#C0C0C0',
    'skyblue':              '#87CEEB',
    'slateblue':            '#6A5ACD',
    'slategray':            '#708090',
    'snow':                 '#FFFAFA',
    'springgreen':          '#00FF7F',
    'steelblue':            '#4682B4',
    'tan':                  '#D2B48C',
    'teal':                 '#008080',
    'thistle':              '#D8BFD8',
    'tomato':               '#FF6347',
    'turquoise':            '#40E0D0',
    'violet':               '#EE82EE',
    'wheat':                '#F5DEB3',
    'white':                '#FFFFFF',
    'whitesmoke':           '#F5F5F5',
    'yellow':               '#FFFF00',
    'yellowgreen':          '#9ACD32'}

可用如下代碼展示具體顏色:

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.colors as colors
import math

fig = plt.figure()
ax = fig.add_subplot(111)

ratio = 1.0 / 3.0
count = math.ceil(math.sqrt(len(colors.cnames)))
x_count = count * ratio
y_count = count / ratio
x = 0
y = 0
w = 1 / x_count
h = 1 / y_count

for c in colors.cnames:
    pos = (x / x_count, y / y_count)
    ax.add_patch(patches.Rectangle(pos, w, h, color=c))
    ax.annotate(c, xy=pos)
    if y >= y_count-1:
        x += 1
        y = 0
    else:
        y += 1

plt.show()

得下圖

繪制柱形圖

plot.bar(x,height,width=0.8,bottom=None,align='center',color,edgecolor)
參數 說明
x 表示在什麼位置顯示柱形圖
height 柱子高度
width 每根柱子的寬度,可各不相同
bottom 每根柱子的底部位置,可各不相同
align 柱子的位置與x值的關系,可選center、edge兩個參數,center表示柱子位於x值的中心位置,edge表示邊緣位置
color 柱子顏色
edgecolor 柱子邊緣的顏色

例:

plt.subplot(1,1,1)

x = np.array(["東區","西區","南區","北區"])
y = np.array([8566,6482,5335,7310])

plt.bar(x,y,width=0.5,align="center",label="任務量")

plt.title("全國各分區任務量",loc="center")

# 添加數據標簽
for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="r")
    
plt.xlabel('分區')
plt.ylabel('任務量')

plt.legend()     #顯示圖例

#保存到本地
#plt.savefig("C:/Users/.../1.jpg")

簇狀柱形圖

plt.subplot(1,1,1)

x = np.array([1,2,3,4])
y1 = np.array([8566,6482,5335,7310])
y2 = np.array([4283,2667,3655,3241])

plt.bar(x,y1,width=0.3,label="任務量")
plt.bar(x+0.3,y2,width=0.3,label="完成量")   #x+0.3相當於完成量的每個柱子右移0.3

plt.title("全國各分區任務量",loc="center")

# 添加數據標簽
for a,b in zip(x,y1):
    plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="blue")
    
    
for a,b in zip(x,y2):
    plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="g")
    
plt.xlabel('區域')
plt.ylabel('任務情況')

#設置x軸刻度值
plt.xticks(x+0.15,["東區","西區","南區","北區"])

plt.grid(False)
plt.legend()     #顯示圖例

堆積柱形圖

plt.subplot(1,1,1)

x = np.array(["東區","西區","南區","北區"])
y1 = np.array([8566,6482,5335,7310])
y2 = np.array([4283,2667,3655,3241])

plt.bar(x,y1,width=0.3,label="任務量")
plt.bar(x,y2,width=0.3,label="完成量")   

plt.title("全國各分區任務量",loc="center")

# 添加數據標簽
for a,b in zip(x,y1):
    plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="blue")
    
    
for a,b in zip(x,y2):
    plt.text(a,b,b,ha='center',va="bottom",fontsize=12,color="g")
    
plt.xlabel('區域')
plt.ylabel('任務情況')


plt.grid(False)

plt.legend(loc = "upper center",ncol=2)     

散點圖

plt.scatter(x,y,s,c,marker,linewidths,edgecolors)
參數 說明
(x,y) 散點的位置
s 每個點的面積,即散點的大小。若隻有一個具體值時,則所有點的大小都一樣。也可呈現多個值,這樣就成瞭氣泡圖
c 每個點的顏色,可多樣
marker 標記,同折線圖中marker
linewidths 散點線寬
edgecolors 散點外輪廓的顏色

 

colors = y*10
area = y*100        #根據y值的大小生成不同形狀

plt.scatter(x,y,c=colors,marker="o",s=area)

plt.title("銷量關系圖",loc="center")

# 添加數據標簽
for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va="center",fontsize=10,color="white")
    
plt.xlabel('氣溫')
plt.ylabel('啤酒銷量')

plt.grid(False)

附:matplotlib實現區域顏色填充

'''
學習python
'''
import matplotlib.pyplot as plt
import numpy as np
  
x= np.linspace(0,5*np.pi, 1000)
  
y1 = np.sin(x)
y2 = np.sin(2*x)
  
#plt.plot(x,y1)
#plt.plot(x,y2)
  
plt.fill(x,y1,'b',alpha=0.5)
plt.fill(x,y2,'r',alpha=0.3)
  
plt.fill_between(x,y1,y2,facecolor='green')
plt.grid(True)
  
plt.show()
  
#########################################################
plt.plot(x,y1,'b',alpha=0.5)
plt.plot(x,y2,'r',alpha=0.3)
#添加條件
#如果數據點比較少的情況下,會有縫隙出現,使用interpolate可以填充縫隙
plt.fill_between(x,y1,y2,where=y1>=y2,facecolor='green',interpolate=True)
plt.fill_between(x,y1,y2,where=y2>y1,facecolor='yellow',interpolate=True)
plt.grid(True)
  
plt.show()
###########################################################
  
n = 256
X = np.linspace(-np.pi, np.pi, n, endpoint=True)
Y = np.sin(2 * X)
  
  
plt.plot(X, Y + 1, color='blue', alpha=1.00)
plt.fill_between(X, 1, Y + 1, color='blue', alpha=.25)
  
plt.plot(X, Y - 1, color='blue', alpha=1.00)
plt.fill_between(X, -1, Y - 1, (Y - 1) > -1, color='blue', alpha=.25)
plt.fill_between(X, -1, Y - 1, (Y - 1) < -1, color='red', alpha=.25)
  
plt.xlim(-np.pi, np.pi)
plt.xticks(())
plt.ylim(-2.5, 2.5)
plt.yticks(())

總結 

到此這篇關於python中matplotlib的顏色以及形狀的文章就介紹到這瞭,更多相關python matplotlib顏色及形狀內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: