用matplotlib的plt.contour(x,y,z,8,colors='black')绘制等高图,其高度值z得是二维数组,但我手里高度值只是一组列表,要怎样才能绘制出等高图呢?
代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#数据准备
x=[100,200,300,400,500] #横坐标
y=[300,500,100,200,500] #纵坐标
z=[100,120,110,150,180] #高度值,运行时这里出错,提示“Input z must be 2D, not 1D”,
#问题是如何转换成二维数组?????
'''添加标题'''
plt.title(f"测试", fontsize=20, fontname="SimHei") #"SimHei"黑体字体可确保中文正常显示
'''contour()函数可生成三维结构表面的等值线图'''
C = plt.contour(x,y,z,8,colors='black')
'''cmap=plt.cm.hot为等值线添加过渡色'''
plt.contour(x,y,z,8,cmap=plt.cm.hot)
'''等值线间添加过渡色'''
plt.contourf(x,y,z, 8)
'''colorbar()可在右侧显示颜色值'''
plt.colorbar()
'''clabel用于标记等高线'''
plt.clabel(C,inline=1,fontsize=10)
plt.show()