python matplotlib 绘图 和 dpi对应关系,matplotlibdpi,dpi表示图内绘图区
python matplotlib 绘图 和 dpi对应关系,matplotlibdpi,dpi表示图内绘图区
dpi表示图内绘图区域的尺寸不是图片外边框
dpi=1 600×400
dpi=2 1200×800
dpi=3 1800×1200
........
dpi=21 (21×600)×(21×400) ---> 12600×8400
示例代码:
import timeimport scipy.signal as signallimport numpy as npimport matplotlibimport matplotlib.pyplot as plty_axis_last=np.linspace(0.0, 0.0, 21120)plt_x=0plt_arr=np.random.rand(1024, 1)def parse_output(start_freq, stop_freq,step ,donser_now_lable,donser, num_now, min_freq): """Parse data from soapy_power""" # define size x_axis = np.linspace(start_freq, stop_freq, round((stop_freq - start_freq))) y_axis= np.linspace(0.0, 0.0, round((stop_freq - start_freq) )) #print(len(x_axis)) donser_now_lable=donser_now_lable+len(x_axis) #y_axis deal global y_axis_last , plt_x , plt_arr i=0 temp_lab=0 for num in range(donser_now_lable+1,len(donser),1 ): if num>=len(donser): y_axis[i]=0 temp_lab=len(donser)-donser_now_lable if num_now==1: y_axis[i]=donser[num] else: y_axis[i]=(donser[num]*0.65+y_axis_last[i]*0.35) i=i+1 if i==len(x_axis): break y_axis_last=y_axis time_stop = time.time() #FFT change if temp_lab!=0: return -1 wave_data1=y_axis[0:len(x_axis)] #print(len(x_axis)) wave_data2 = wave_data1 * signall.hann(len(x_axis)) c=np.fft.fft(wave_data2[0:len(x_axis)])*2/len(x_axis) #print(len(c)) d=int(len(c)/2) y_axis=abs(c[0:d]) x_axis.resize(d) min=100 max=0 for i in range(0,len(y_axis),1 ): if y_axis[i]>max: max=y_axis[i] if y_axis[i]<min: min=y_axis[i] #print(max) #print(min) #x_axis y_axis to buffer & update buffer if min_freq is None: min_freq = start_freq if start_freq == min_freq: databuffer = {"timestamp": time_stop, "x": list(x_axis), "y": list(y_axis)} else: databuffer["x"].extend(x_axis) databuffer["y"].extend(y_axis) if stop_freq >0: #data_storage.update(databuffer) #self.plt_arr=np.random.rand(1024) #self.plt_x=0 #print(self.plt_x) if plt_x==0: plt_arr=y_axis plt_arr.resize(len(y_axis) , 1) print("first time") else: plt_temp=y_axis plt_temp.resize(len(y_axis) , 1) plt_arr=np.concatenate((plt_arr,plt_temp ), axis=1) #print(self.plt_arr) if plt_x%1000==0: print(plt_x) if plt_x%1000==0: cm=‘hot‘ norm = matplotlib.colors.Normalize(vmin=min, vmax=max) map=plt.imshow(plt_arr,interpolation=‘nearest‘,cmap=cm,norm=norm, origin=‘upper‘) plt.xticks([]) plt.yticks([]) plt.axis(‘off‘) #plt.colorbar(mappable=map,ax=None,shrink=0.5, pad=0) plt.savefig("filename.png", dpi=1320) #plt.show() print("-------------------------->") print(plt_x) plt_x+=1 temp_str=str(num_now) return donser_now_labledef main(): num_now=1 donser_now_lable=0 sys_start_freq = 87000000.0 #start fre 87MHZ sys_stop_freq = 108127168.0 #stop fre 108MHZ step = 10316# 5158 # 2579.0 #Bin size 1KHZ new (108127168-87000000)/8192 bins = 2048 #4096 #8192 #21120# 10560 #sampling number MHZ #time_s = 1 # ?times stop_freq = sys_start_freq #init min_freq = None plt_x=0 #donser=np.fromfile("C:\\Users\\Administrator\\Desktop\\bins\\123.b_le.bin", dtype=np.int16 ) donser=np.fromfile("C:\\Users\\Administrator\\Desktop\\bins\\1.b_le.bin", dtype=np.int16 ,count=629145600) # 600M 629145600 while 1: #time_start = time.time() start_freq = stop_freq if start_freq>=sys_stop_freq: break stop_freq = start_freq+bins #print("Start:", start_freq) #print("Stop :", stop_freq) donser_now_lable=parse_output(start_freq,stop_freq, step,donser_now_lable,donser, num_now, min_freq) num_now=num_now+1 if donser_now_lable>=len(donser) : breakif __name__ == "__main__": main()
上代码读入一个二进制bin数据文件1.08GB的一部分,数据格式为无包头、小端模式、16位编码的频谱数据dpi=1320,生成名称为filename.png的图片
python matplotlib 绘图 和 dpi对应关系
相关内容
- 监控无线AP是否在线python脚本,监控appython脚本,由于工
- Python3的安装,Python3安装,工欲善其事,必先利其
- Python第三方库之openpyxl(2),pythonopenpyxl,Python第三方库
- Python:数据可视化pyecharts的使用,pythonpyecharts,什么是
- python算两个时间之间的天数,将天数转成int型,python
- python3 中 and 和 or 运算规律,python3or,一、包含一个逻辑
- 【python】安装pymongo时出错,pythonpymongo出错,在python2.7
- Kafka(八)Python生产者和消费者API使用,kafkapython,单线
- Macaca初体验-PC端(Python),macaca-pc,前言:Macaca
- python实现本地图片上传到服务区,,本地图片上传到服务
评论关闭