我有一組具有座標(x,y)的一組點的文件,我使用三角測量方法生成表示曲面的三角形網。三角測量由一個由n個點和n個三角形組成的非結構化三角形網格組成。在Python中繪製密度圖的三角測量方法
數據作圖從CSV文件:
from matplotlib import pyplot as plt
from pandas import DataFrame
from matplotlib import style
df = DataFrame.from_csv('d:\Users\Raquel\Desktop/test.csv', header=0,
sep=';') # unpact values into x and y using pandas to load my csv file
style.use('ggplot')
我用這個三角網格,以便能夠計算密度(1 /表面),然後繪製密度圖。
繪製密度圖BY三角測量法
import numpy as np
from matplotlib.pyplot import (tripcolor, triplot, scatter,
show, title, savefig, colorbar)
from matplotlib.tri import Triangulation, TriAnalyzer
# Coordinates
x = df['x'].values
y = df['y'].values
# Triangulation
tri = Triangulation(x, y)
# Coordinates of the edges
ii1, ii2, ii3 = tri.triangles.T
x1 = x[ii1] ; y1 = y[ii1]
x2 = x[ii2] ; y2 = y[ii2]
x3 = x[ii3] ; y3 = y[ii3]
# Surfaces
surf = 0.5*np.abs((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1))
# Density
dens = 1.0/(surf*3) # 3 points per triangle
# Plot
xd = (x1+x2+x3)*1.0/3.
yd = (y1+y2+y3)*1.0/3.
tripcolor(xd, yd, dens, cmap='cool')
colorbar()
title('Density Map')
savefig('density.png')
show()
地圖不是我點的密度的良好表現,我不知道如何改進它......是不是有什麼毛病代碼?
注: 這裏是我的密度圖的圖像: http://postimg.org/image/3y1g90nwd/c8d2af55/
這裏是原始圖像: http://postimg.org/image/lqn1b8lmx/6dca1266/
Mraquel,您可以將您的密度地圖上傳到其他服務並在此處發佈鏈接。 –
非常感謝@CristianoAraujo – Mraquel
你想在這張圖中展示什麼? –