Skip to main content
 Web开发网 » 编程语言 » Python语言

一篇文章告诉你用Python做数据可视化,从萌新到大佬的必经之路

2021年11月27日1620百度已收录

最近萌新遇到一个问题,如何用爬来的数据做可视化。。

Python的画图最常见的就是 Matplotlib

Matplotlib的用法

画饼图

import matplotlib.pyplot as pltlabels = 'Frogs','Hogs','Dogs','Logs' #自定义标签sizes = [15,30,45,10] #每个标签占多大explode = (0,0.1,0,0) #将某部分爆炸出来plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90) #autopct,圆里面的文本格式,%1.1f%%表示小数有1位,整数有一位的浮点数 #shadow,饼是否有阴影 #startangle,起始角度,0,表示从0开始逆时针转,为第一块。一般选择从90度开始比较好看plt.axis('equal') # 设置x,y轴刻度一致,这样饼图才能是圆的plt.show()一篇文章告诉你用Python做数据可视化,从萌新到大佬的必经之路  Python数据可视化 第1张

直方图

import numpy as npimport matplotlib.pyplot as pltnp.random.seed(0) #每次生成的随即数都相同mu , sigma = 100,20 #均值和标准差a = np.random.normal(mu,sigma,size=100) #给出均值为mean,标准差为stdev的高斯随机数(场),当size赋值时,例如:size=100,表示返回100个高斯随机数。plt.hist(a,10,histtype='stepfilled',facecolor='b',alpha=0.75) #10是直方图的个数plt.title('Histogram') #标题plt.show()一篇文章告诉你用Python做数据可视化,从萌新到大佬的必经之路  Python数据可视化 第2张

坐标图

import numpy as npimport matplotlib.pyplot as pltN = 20theta = np.linspace(0.0, 2 * np.pi, N , endpoint=False)radii = 10 * np.random.rand(N)width = np.pi / 4 * np.random.rand(N)ax = plt.subplot(111,projection='polar')bars = ax.bar(theta,radii,width=width,bottom=0.0)for r,bar in zip(radii,bars): bar.set_facecolor(plt.cm.viridis(r / 10.)) bar.set_alpha(0.5)plt.show()一篇文章告诉你用Python做数据可视化,从萌新到大佬的必经之路  Python数据可视化 第3张

散点图import numpy as npimport matplotlib.pyplot as pltfig , ax = plt.subplots()ax.plot(10*np.random.rand(100),10*np.random.rand(100),'o')ax.set_title('Simple Scatter')plt.show()一篇文章告诉你用Python做数据可视化,从萌新到大佬的必经之路  Python数据可视化 第4张

整体来看,Python的Matplotlib画图还是挺不错的,看看用BDP画出来的图是哪样的。。

这样的

一篇文章告诉你用Python做数据可视化,从萌新到大佬的必经之路  Python数据可视化 第5张

一篇文章告诉你用Python做数据可视化,从萌新到大佬的必经之路  Python数据可视化 第6张

一篇文章告诉你用Python做数据可视化,从萌新到大佬的必经之路  Python数据可视化 第7张

感觉还是有一些差距啊~最后老师教了一招,Matplotlib绘制引力波,效果如下

一篇文章告诉你用Python做数据可视化,从萌新到大佬的必经之路  Python数据可视化 第8张

import numpy as npimport matplotlib.pyplot as pltfrom scipy.io import wavfilerate_h, hstrain = wavfile.read(r"H1_Strain.wav", "rb")rate_l, lstrain = wavfile.read(r"L1_Strain.wav", "rb")reftime, ref_H1 = np.genfromtxt('wf_template.txt').transpose() # 使用python123.io下载文件htime_interval = 1 / rate_hltime_interval = 1 / rate_lfig = plt.figure(figsize=(12, 6))# 丢失信号起始点htime_len = hstrain.shape[0] / rate_hhtime = np.arange(-htime_len / 2, htime_len / 2, htime_interval)plth = fig.add_subplot(221)plth.plot(htime, hstrain, 'y')plth.set_xlabel('Time (seconds)')plth.set_ylabel('H1 Strain')plth.set_title('H1 Strain')ltime_len = lstrain.shape[0] / rate_lltime = np.arange(-ltime_len / 2, ltime_len / 2, ltime_interval)pltl = fig.add_subplot(222)pltl.plot(ltime, lstrain, 'g')pltl.set_xlabel('Time (seconds)')pltl.set_ylabel('L1 Strain')pltl.set_title('L1 Strain')pltref = fig.add_subplot(212)pltref.plot(reftime, ref_H1)pltref.set_xlabel('Time (seconds)')pltref.set_ylabel('Template Strain')pltref.set_title('Template')fig.tight_layout()plt.savefig("Gravitational_Waves_Original.png")plt.show()plt.close(fig)zu最后,我这里整理了一些关于Python的学习资料,从基础到实战都有,需要的朋友可以关注并私信“01”免费获取

评论列表暂无评论
发表评论
微信