通过一个简单的图像熟悉matplotlib的用法

推荐使用jupyder notebook

代码如下:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-np.pi,np.pi,256,endpoint=True) #np.linspace的作用是实现间隔采样
c,s = np.cos(x),np.sin(x) #对c,s进行函数话的赋值
plt.figure(1)
plt.plot(x,c,color="black",linewidth=1.0,linestyle='-',label='COS',alpha=0.5)
plt.plot(x,s,'b*',label='sin') #alpha透明度 
plt.title("SIN AND COS")  #为图片添加标题
ax = plt.gca()    #gca是轴的编辑器 这里赋值给ax
ax.spines["right"].set_color("none")  #对轴进行颜色和位置的设置 
ax.spines["top"].set_color("none")  
ax.spines["left"].set_position(("data",0))
ax.spines["bottom"].set_position(("data",0))
ax.xaxis.set_ticks_position("bottom")  #设置x轴的数值在轴上的位置
ax.yaxis.set_ticks_position("left")
plt.xticks([-np.pi,-np.pi/2,np.pi/2,np.pi]) #对x轴的坐标刻度进行设置
plt.yticks(np.linspace(-1,1,5,endpoint=True)) #对y轴的坐标刻度进行设置
for label in ax.get_xticklabels() + ax.get_xticklabels():
    label.set_fontsize(16)
    label.set_bbox(dict(facecolor="yellow",edgecolor="red"))
plt.legend(loc="upper left")  #设置图例的位置
plt.grid()  #打印网格线 
# plt.axis([-1,1,-0.5,1]) #设置图像的显示范围
plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="green",alpha=0.25)#按照要求对图像进行填充
t = 1
plt.plot([t,t],[0,np.cos(t)],"black",linewidth=1,linestyle="--")#在x=1的位置加一条虚线 
#为这条虚线加一条注释
plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=(+10,+30),textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))
#xy为注释点、xytext表示注释点的偏移量、textcoords在此处的设置表示偏移为相对偏移、arrowprops设置箭头
plt.show()

图像如下:


    能把上图画出来,也算是对matplotlib入门了。

下面我们来进行子图和多种常用图形的绘制
1.散点图 scatter
#1.散点图 scatter
fig = plt.figure()
fig.add_subplot(3,3,1) #确定子图在整体的位置
n = 128
X= np.random.normal(0,1,n) #X为随机数 个数128个
Y = np.random.normal(0,1,n) #Y为随机数 个数128个 
T = np.arctan2(Y,X) 
# plt.axis([0.025,0.025,0.95,0.95]) #指定显示范围
plt.scatter(X,Y,s=10,c=T,alpha=.5) #s表示点的大小 c表示color alpha透明度
plt.xlim(-1.5,1.5),plt.xticks([]) #xlim表示x的范围
plt.ylim(-1.5,1.5),plt.yticks([])
# plt.axis()
plt.title("scatter")
plt.xlabel("x")
plt.ylabel("y")
plt.show()
2.柱状图 bar
#2.柱状图 bar
fig.add_subplot(3,3,2)
n = 10
X = np.arange(n) #定义一个0-9的数列
Y1 = (1-X/float(n))*np.random.uniform(0.5,1.0,n)
Y2 = (1-X/float(n))*np.random.uniform(0.5,1.0,n)

plt.bar(X,+Y1,facecolor='#9999ff',edgecolor='white') ##+表示把Y1放到上面 -号表示把Y2方到下面
plt.bar(X,-Y2,facecolor='#ff9999',edgecolor='white')

for x,y in zip(X,Y1):
    plt.text(x+0.4,y+0.05,'%.2f'%y,ha='center',va='bottom')
for x,y in zip(X,Y2):
    plt.text(x+0.4,-y-0.05,'%.2f'%y,ha='center',va='top')
plt.show()
3.饼图 pie
#3.饼图 pie
fig.add_subplot(333)
n = 20
Z = np.ones(n)
Z[-1] *= 2
plt.pie(Z,explode=Z*.05,colors=['%f'%(i/float(n)) for i in range(n)],labels=['%.2f'%(i/float(n)) for i in range(n)])
plt.gca().set_aspect('equal') #设置图像为正圆
plt.xticks([]),plt.yticks([])
plt.show()
4.极坐标 polar
#4.极坐标 polar
fig.add_subplot(334)
n = 20
theta = np.arange(0.0,2*np.pi,2*np.pi/n)
radii = 10*np.random.rand(n)
plt.polar(theta,radii)
plt.show()
5.热图 hot map
#5.热图 hot map
from matplotlib import cm #cm==colormap 用来上色
fig.add_subplot(335)
data = np.random.rand(10,10)
cmap = cm.Blues
map = plt.imshow(data,interpolation='nearest',cmap=cmap,aspect='auto',vmin=0,vmax=1)
plt.show()
6.3D图 3D
#6.3D图  3D
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax=fig.add_subplot(336,projection="3d") 
ax.scatter(1,1,3,s=100)
plt.show()
7.热力图 heat map
#7.热力图 heat map
fig.add_subplot(3,1,3)
def f(x,y):
    return(1-x/2+x**5+y**3) * np.exp(-x**2-y**2)
n = 256
x = np.linspace(-3,3,n)
y = np.linspace(-3,3,n)
X,Y = np.meshgrid(x,y)
plt.contourf(X,Y,f(X,Y),8,alpha=.75,camp=plt.cm.hot)
plt.show()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容