惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
MyScale Blog
MyScale Blog
I
InfoQ
爱范儿
爱范儿
Microsoft Security Blog
Microsoft Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
T
Tailwind CSS Blog
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Blog of Author Tim Ferriss
B
Blog
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
雷峰网
雷峰网
Recent Announcements
Recent Announcements
量子位
B
Blog RSS Feed

Daniel Duque Campayo

Cursos de música online Latex, Beamer, Python, Beauty Boring stuff Better with stock pictures Prueba Tired of that “TeX” look? Grabaciones al aire libre A markdown test Quick von Neumann stability analysis
Plotting 2D column-shaped results with python
2018-03-06 · via Daniel Duque Campayo

Ok, so you have your computational output of a set of 2D points. You have been lazy and done the obvious stuff: arrange them in columns, with the first one being the x coordinates, second one the y coordinate, then come the fields, which may be scalar (one column each), or vector (two columns each, one for each coordinate). How to visualize them?

With python, start with

ipython --pylab

Then, read the data

In [4]: dt = loadtxt( ‘1/mesh.dat’ )

In [5]: shape( dt )
Out[5]: (1024, 27)

Notice the last command tells us we have 1024 data points, and 27 fields (well, 25 + positions). For convinience, assign columns to arrays:

In [6]: x=dt[:,0]; y=dt[:,1]; al=dt[:,4]

Now x and y are positions, and “al” is the scalar field for the fifth column (number 4, since counters start at 0 in python).

To visualize the positions,

In [7]: scatter( x , y )

A scalar field may be visualized with a color map:

In [9]: scatter( x , y , c = al )

The “c=” means the color is taken from field al. One may fiddle with colormaps and symbol sizes:

In [9]: scatter( x , y , c = al , cmap= plt.cm.Blues, s=8 )

To know the range we are plotting, produce a color bar:

In [19]: colorbar()

Remember each plotting is overlaid on the previous one, so it is necessary to blank the plot from time to time:

In [11]: clf()

For vector fields, assign coordinates to two separate arrays:

In [20]: vx=dt[:,8]; vy=dt[:,9]

Then, use “quiver” to get a vector plot:

In [22]: quiver( x, y, vx , vy )