前言
说在前面,写这个呢仅仅是为了记录下自己在学习过程中的一些问题以及排坑,代码也有很多待优化的地方,大佬们轻喷。
码字不易,转载务必注明出处!
先说下为什么要画这个图吧,本人石油工程研狗,帮老板板砖的时候总免不了画画图,有一天老板甩给我一篇论文,指了指文中一图。
于是我便开始在网络搜寻画法,百度关键词Python 、极坐标、云图、polar 、pcolor 均未果,仅找到了些许Matlab的代码,无奈实在没找到用python画图的代码,于是开始了自己的摸索。
思路
首先这个是要先建立一个极坐标,然后导入数据插值(此处我有遇坑),最后在极坐标的基础上绘制这种伪色彩图的效果,找到了两种绘图方法pcolor
和contourf
两种方法,两种方法的区别我百度了一下,知乎-pcolor 和 contourf这两个函数有什么不同?,各位可以参考,也欢迎各位在评论区讨论区别。最终我选择了pcolor
。只因为pcolor
画出来的图更像吧。
绘图过程
导入数据
数据是老师给的本专业领域的数据,同行看一眼应该就知道是什么了,非同行也不太用了解,就当是个学习资料了。
pos | 0 | 30 | 60 | 90 |
---|---|---|---|---|
0 | 1.101447148 | 1.308827831 | 1.526038083 | 1.603848713 |
30 | 1.101447148 | 1.279591136 | 1.49432297 | 1.577829862 |
60 | 1.101447148 | 1.204513965 | 1.435064241 | 1.52576792 |
90 | 1.101447148 | 1.108569817 | 1.404547306 | 1.499676995 |
120 | 1.101447148 | 1.204513965 | 1.435064241 | 1.52576792 |
150 | 1.101447148 | 1.279591136 | 1.49432297 | 1.577829862 |
180 | 1.101447148 | 1.308827831 | 1.526038083 | 1.603848713 |
210 | 1.101447148 | 1.279591136 | 1.49432297 | 1.577829862 |
240 | 1.101447148 | 1.204513965 | 1.435064241 | 1.52576792 |
270 | 1.101447148 | 1.108569817 | 1.404547306 | 1.499676995 |
300 | 1.101447148 | 1.204513965 | 1.435064241 | 1.52576792h |
330 | 1.101447148 | 1.279591136 | 1.49432297 | 1.577829862 |
360 | 1.101447148 | 1.308827831 | 1.526038083 | 1.603848713 |
// 导入数据
import numpy as np
import pandas as pd
df = pd.read_csv('data.csv')
# 注意!此处记得转化为弧度!
pos = np.array(df['pos']/180*np.pi)
ind = np.array(df.columns[1:], dtype=np.int)
values = np.array(df[ind.astype('str')])