用后处理软件处理的云图会出现这样或那样的不满意,其实我们可以将求解数据导出以后,借助python定制云图。

我们以fluent为例

求解完成之后,我们将我们需要做云图的物理量以ASCII导出

如下的python脚本

代码如下:

# -*- coding: utf-8 -*-

import numpy as np

import csv

import matplotlib.pyplot as plt

from scipy.interpolate import griddata

#==============================

#该段代码来支持在图片中显示中文

#==============================

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus']=False

#保存x坐标

x=[]

#保存y坐标

y=[]

#保存导出的速度

velocity=[]

#读取csv文件,当然也可以读取类似txt之类的文件

with open(r'/home/dell/new/contour/new','r')  as  csvfile:

#指定分隔符为",",因为我们刚才导出时就是逗号

plots=csv.reader(csvfile,delimiter=',')

#循环读取到的文件

for row in plots:

#为了跳过文件前面的非数据行

if plots.line_num == 1:

continue

x.append(float(row[1]))

y.append(float(row[2]))

velocity.append(float(row[3]))

#如果数值过小,则视为0,防止出现非数的情况

y[y<1e-10]=0

xi=np.linspace(min(x),max(x),10000)

yi=np.linspace(min(y),max(y),10000)

#x,y坐标必须维数一致,且为二维

[X,Y]=np.meshgrid(xi,yi)

#对x,y的速度进行插值,插值的方法有'cubic','linear','nearest'

#注意传入的坐标参数需要以元组的形式成对传入

#当然matplotlib也自带griddata插值函数,该函数每个坐标是一个参数

#但matplotlib自带的griddata插值函数只能使用默认的linear插值

# Velocity=griddata((x,y),velocity,(X,Y),method='cubic')

# Velocity=griddata((x,y),velocity,(X,Y),method='nearest')

Velocity=griddata((x,y),velocity,(X,Y),method='linear')

#画出云图

#20为几条等值线,alpha为透明度,cmap对应的色彩风格

im=plt.contourf(X,Y,Velocity,20,alpha=0.75,cmap=plt.cm.jet)

#画出等值线

#color为等值线的颜色,linewidth为等值线的宽度

isoline=plt.contour(X,Y,Velocity,20,color='black',linewidth=0.1)

#在等值线上标上对应的数值

#inline表示是否将数值标在等值线上,fontsize为等值线上数值的字体的大小

plt.clabel(isoline,inline=True,fontsize=10)

#输出云图的legend

#orientation表示legend的位置,默认值为vertical,横置为horizontal

cbar=plt.colorbar(im, orientation='vertical', shrink=0.8)

#设置legend的标题

cbar.set_label('m/s')

#设置legend的范围

cbar.set_ticks(np.linspace(0,0.114,10))

#云图的标题

plt.title(u"速度云图")

#显示云图

plt.show()​

python定制后处理云图的更多相关文章

  1. 使用Python定制词云

    一.实验介绍 1.1 实验内容 在互联网时代,人们获取信息的途径多种多样,大量的信息涌入到人们的视线中.如何从浩如烟海的信息中提炼出关键信息,滤除垃圾信息,一直是现代人关注的问题.在这个信息爆炸的时代 ...

  2. Python定制类(进阶6)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6411919.html 本文出自:[Edwin博客园] Python定制类(进阶6) 1. python中什么 ...

  3. python定制类(1):__getitem__和slice切片

    python定制类(1):__getitem__和slice切片 1.__getitem__的简单用法: 当一个类中定义了__getitem__方法,那么它的实例对象便拥有了通过下标来索引的能力. c ...

  4. 520,用Python定制你的《本草纲目女孩》

    摘要:让我们来用Python定制出心仪的"本草纲目女孩",敲出魔性的代码舞蹈,520,准备好心仪女孩的舞蹈视频,把这份别出心裁的礼物给TA 本文分享自华为云社区<[云驻共创] ...

  5. python 数据分析--词云图,图形可视化美国竞选辩论

    这篇博客从用python实现分析数据的一个完整过程.以下着重几个python的moudle的运用"pandas",""wordcloud"," ...

  6. python 定制类

    看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让cla ...

  7. Python - 定制pattern的string模板(template) 具体解释

    定制pattern的string模板(template) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179 ...

  8. V-Charts中使用extend属性定制词云图

    [本文出自天外归云的博客园] 简介 在Vue中使用E-Charts可以用V-Charts,词云图在V-Charts官网中介绍比较简单,如果想更多定制的话,官网上说要在extend属性中进行扩展. V- ...

  9. 词云wordcloud类介绍&python制作词云图&词云图乱码问题等小坑

    词云图,大家一定见过,大数据时代大家经常见,我们今天就来用python的第三方库wordcloud,来制作一个大数据词云图,同时会降到这个过程中遇到的各种坑, 举个例子,下面是我从自己的微信上抓的微信 ...

随机推荐

  1. SASS系列之:!global VS !deafult

    先脑补两组场景. 场景一: 同事们每天中午都会外出吃饭.通常情况下都会先问,去哪儿吃啊?不知道啊?下楼再说吧.到了楼下好不容易有个人站出来说,既然没人说我可就说了啊,咱们去吃香草香草吧.没人反对就去, ...

  2. echart 人头

    <template> <div :class="className"> <div :id="id" class="spi ...

  3. centos 7.6 修改vim配色方案

    cd ~ vim .vimrc colorscheme desert

  4. layui 单选框、复选框、下拉菜单 不显示问题 记录

    1. 如果是 ajax嵌套了 页面, 请确保  只有最外层的页面引入了 layui.css 和 layui.js 内层页面 切记不要再次引入 2. layui.use(['form', 'upload ...

  5. mysql查看当前实时连接数

    静态查看: SHOW PROCESSLIST; SHOW FULL PROCESSLIST; SHOW VARIABLES LIKE '%max_connections%'; SHOW STATUS ...

  6. 大数据之路week07--day06 (Sqoop 的使用)

    Sqoop的使用一(将数据库中的表数据上传到HDFS) 首先我们先准备数据 1.没有主键的数据(下面介绍有主键和没有主键的使用区别) -- MySQL dump 10.13 Distrib 5.1.7 ...

  7. 《BUG创造队》作业9:【Beta】冲刺 Scrum meeting 3

    项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目验收 团队名称 BUG创造队 作业学习目标 (1)掌握软件黑盒测试技术:(2)学 ...

  8. 基于h5+的微信登录,hbuilder打包

    1.打开app项目的manifest.json的文件,选择模块权限配置,将OAuth(登录鉴权)模块添加至已选模块中 2.选择SDK配置,在plus.oauuth·登录鉴权中,勾选□ 微信登录,配置好 ...

  9. 在eclipse运行一个项目报端口被占的问题

    1.端口被占问题解决方法. 我们运行javaweb项目的时候,如果不幸你的项目出现了上图的那种情况,不要慌,仅仅是端口被占了而已,只需要打开你tomcat里面的bin里面的shutdown.bat即可 ...

  10. “挂起”bug处理执行方案

    目的:避免bug状态改为挂起后,就无人问津,导致一直未得到解决.因而影响用户的使用与产品质量较差.