I am using matplotlib
and numpy
, and I am making graphs. The data format I am using is .csv
. In the csv
file I am using there are three columns. I wonder, is there a way to only import data up until the peak/lowest values of one of my columns?
Context: I am using Langmuir troughs with lipid monolayers and compressing and expanding barriers to increase/decrease the area I am trying to plot pressure and fluorescence against the area. However, the program that takes this data performs a complete cycle of compression and expansion and I cannot stop the data collection simply when the trough is at its minimum area. So I would like to have Python only import until the area value gets to its lowest point.
example of how my data looks
Area | Presure | Intensity
12500 |3 | 1
11500 |6 | 12
etc |8 |25
3000 |12 |38
3500 |19 |54 <==want it to stop importing here
4500 |16 |47
Is this possible??
I have added what Phi has put and It doesn't seem to be working? I still get all of the values included into my graphs code looks like this import matplotlib.pyplot as plt import numpy as np import pandas as pd
df = pd.read_csv("C:\\Users\\Owner\\Desktop\\Thunberg,Dametre\\5-29 Data and
movies\\New folder (2)\\Data 2.csv", sep=',')
rowmin = df.area.idxmax()
df[:(1 + rowmin)]
fig, ax1 = plt.subplots()
area, pressure, pixel = np.loadtxt
("C:\\Users\\Owner\\Desktop\\Thunberg,Dametre\\5-29 Data and movies\\New
folder
(2)\\Data 2.csv", delimiter=",", skiprows=1, unpack=True)
plt.plot(area,pressure, label='area/pressure!',color='b')
plt.xlabel('area', color='b')
plt.ylabel('Pressure', color='b')
ax1.tick_params('y', colors='b')
ax2 = ax1.twinx()
this ax2 creates a second x axis
ax2.set_ylabel('Intensity (measured by average pixel value)', color='r')
this labels the secondary axis and chooses its color
ax2.tick_params('y', colors='r')
this Chooses the color of the ticks in the axis
ax2.plot(area,pixel, color='r')
this is what actually plots the second graph of area vs intensity
plt.title('Kibron Trough Pressure-Area-Intensity Graph')
plt.legend()
plt.show()