1. 程式人生 > >用matplotlib作圖——顏色與線型控制

用matplotlib作圖——顏色與線型控制

plot畫圖時可以設定線條引數。包括:顏色、線型、標記風格。
1)控制顏色
顏色之間的對應關係為
b---blue   c---cyan  g---green    k----black
m---magenta r---red  w---white    y----yellow
有三種表示顏色的方式:
a:用全名  b:16進位制如:#FF00FF  c:RGB或RGBA元組(1,0,1,1) d:灰度強度如:‘0.7’
2)控制線型
符號和線型之間的對應關係
-      實線
--     短線
-.     短點相間線
:     虛點線

3)控制標記風格
標記風格有多種:
.  Point marker
,  Pixel marker

o  Circle marker
v  Triangle down marker 
^  Triangle up marker 
<  Triangle left marker 
>  Triangle right marker 
1  Tripod down marker
2  Tripod up marker
3  Tripod left marker
4  Tripod right marker
s  Square marker
p  Pentagon marker
*  Star marker
h  Hexagon marker
H  Rotated hexagon D Diamond marker

d  Thin diamond marker
| Vertical line (vlinesymbol) marker
_  Horizontal line (hline symbol) marker
+  Plus marker

x  Cross (x) marker

各種函式實戰:

import math
import numpy as np
#import pandas as pd
import matplotlib as mp1
import matplotlib.pyplot as plt
mp1.rcParams['font.sans-serif']=[u'kaiti']
mp1.rcParams['axes.unicode_minus']=False
'''mu =0
s=1
x=np.linspace(mu-3*s,mu+3*s,50)
y=np.exp(-(x -mu)**2/(2*s**2))/(math.sqrt(2*math.pi)*s)
print(x.shape)
print('x=\n',x)
print(y.shape)
print('y=\n',y)
plt.figure(facecolor='w')
plt.plot(x,y,'y-',x,y,'go',linewidth=2,markersize=5)
plt.xlabel('X',fontsize=15)
plt.ylabel('Y',fontsize=15)
plt.title('高斯分佈',fontsize=18)
plt.grid(1)
plt.savefig('1.png')
plt.show()


def f(x):
    y=np.ones_like(x)
    i =x>0
    y[i]=np.power(x[i],x[i])
    i=x<0
    y[i]=np.power(-x[i],-x[i])
    return y


x=np.linspace(-1,1,101)
y=f(x)
plt.plot(x,y,'g-',label='X^X',linewidth=2)
plt.grid(1)
plt.legend(loc='upper left')
plt.savefig('溝函式.jpg')
plt.show()


x=np.arange(1,0,-0.001)
y=(-3*x*np.log(x)+np.exp(-(40*(x-1/np.e))**4)/25)/2
plt.figure(figsize=(5,7))
plt.plot(y,x,'r-',linewidth=2)
plt.grid(1)
plt.savefig('胸函式.jpg')
plt.show()


t=np.linspace(0,7,100)
x=16*np.sin(t)**3
y=13*np.cos(t)-5*np.cos(2*t)-2*np.cos(3*t)-np.cos(4*t)
plt.plot(x,y,'r-',linewidth=2)
plt.grid(1)
plt.savefig('心形線.jpg')
plt.show()'''


t=np.linspace(0,50,1000)
x=t*np.sin(t)+np.cos(t)
y=np.sin(t)-t*np.cos(t)
plt.plot(x,y,'k-',linewidth=5)
plt.grid(1)
plt.savefig('蚊香線.jpg')
plt.show()