科学计算-----第二天7

将图像保存为字节

import matplotlib.pyplot as plt
import numpy as np
from io import BytesIO

#figure,plot,xlabel,ylabel,title,ylim,xlim,legend,show,imshow
#pylab中就有很多numpy与pyplot的函数

x=np.linspace(0,10,1000)
y=np.sin(x)
z=np.cos(x)
plt.figure(figsize=(8,4),dpi=100) #单位为英寸,宽*高,1 in=2.54 cm
plt.plot(x,y,label='$sin(x)$',color='red',linewidth=2)
plt.plot(x,z,'b--',label='$cos(x)$')
plt.xlabel('Time(s)')
plt.ylabel('Volt')
plt.title('pyplot first example')
plt.xlim(0,10)
plt.ylim(-1,1)
plt.legend()

plt.draw() #刷新
plt.show()
#
#buf=BytesIO()
#plt.savefig(buf,fmt='PNG',dpi=100)
#print(buf.getvalue()[:20])
#-------------------------------------------------
#line=plt.plot(x,x*x)[0]  #plot返回一个列表
#line.set_antialiased(True) #使用line2D对象的set_*()方法来设置属性值

#lines=plt.plot(x,np.sin(x),x,np.cos(x),lw=5.0)
#print(plt.getp(lines[1],'linewidth')) #输出图像1的线宽
#----------------------------------------------------------
#matplotlib中的坐标系:数据坐标系,子图坐标系,图表坐标系,窗口坐标系
#Axes对象的transData属性是数据变换对象
#transAxes属性是子图坐标变换对象
#Figure对象的transFigure属性是图表坐标变换对象
ax=plt.gca()
print(ax.transData.transform([(0,1)])) #数据坐标点(0,1)在绘图窗的位置
print(ax.transAxes.transform([0,1])) #子图的左上角(0,1)
#此例中子图的左上角(0,1)与数据点(0,1)在屏幕上是同一个点
print(plt.gcf().transFigure.transform([(1,1)]))#图表坐标系中(0,1)点所在位置

'''
1 in=2.54 cm
dpi表示每英寸表示的像素,所以该图片为800*400
$是latex语法,但会降低图标的描述速度
color 颜色可以用单词表示;'#ff0000' #开头的16进制数表示;(1.0,0.0,0.0) 0到1范围
内的三个元素的元组表示。三种表示方法
linewidth或者lw指定曲线的宽度
plot的第三个参数,可以直接指定颜色与线型
legend 显示图例
savefig 保存图像   plt.savefig('try.PNG',dpi=100) 最后此例中的图片保存为800*400像素
也可以调用BytesIO,将图片保存在内存中
'''

'''
pyplot里面只保存了当前图表与当前子图等信息
gcf,gca获取图表与子图信息
set_antialiased line2D的反锯齿效果
子图subplot(211) subplot(3,2,3)
ax1=subplot(211)
plt.sca(ax1)  选择子图ax1
'''

发布了53 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37083038/article/details/102772223