现在我正在尝试创建一个图表,这很好,直到我尝试在我的.csv文件上添加第三列数据。
所以基本上我正在采取压力区域等温线,而我的任务就是制作压力,面积图,我实现了(哇!)
import matplotlib.pyplot as plt
import numpy as np
x, y = np.loadtxt("Example.csv", delimiter=',', unpack=True)
plt.plot(x,y)
plt.xlabel('Area-mm^2')
plt.ylabel('Pressure mN/m')
plt.title('Pressure-Area Isotherm\nKibron')
plt.legend()
plt.show()
这就是我得到的,现在我需要做的是将我拍摄的一些照片的平均像素值放入图表中,这样我就可以正确地关联面积与压力/光强度之间的反比关系。
My.csv(excel文件)有三列,如果不可能同时执行这两个操作,有人可以告诉我一种方法,只选择三列中的两列放在图表上吗? I.E压力/面积,压力/像素值或面积/像素值。我假设它将涉及为每列分配一个数字(n)并使用pyplot图“n”vs“n” 编辑:我也希望他们成为第二个比例,这样整体图表看起来并不简单。再次感谢你的帮助!
| 1st是区域|然后压力|和平均像素值|
答案 0 :(得分:0)
您可以使用zip
并创建重叠图:
import csv
import matplotlib.pyplot as plt
with open('filename.csv') as f:
headers = iter(['area', 'pressure', 'pixel'])
data = {next(headers):list(map(float, b)) for _, *b in zip(*csv.reader(f))}
labels = ['pressure/area', 'pressure/pixel', 'area/pixel']
for i in labels:
num, denom = i.split('/')
plt.plot(data[num], data[denom], label = i)
plt.legend(loc='upper left')
plt.show()