Después de leer el archivo csv e importarlo en un DataFrame, hay dos columnas que intento representar gráficamente (~ 25k puntos en total). Tengo el siguiente código hasta ahora:

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv(r'/Users/ephemeralhappiness/Desktop/Path/Data Example.csv')
df = pd.DataFrame(data, columns=['Displacement Into Surface', 'Load On Sample'])
a = df.loc[0, 'Displacement Into Surface']
b = df.loc[0, 'Load On Sample']
df = df.drop([0])
x = df['Load On Sample']
y = df['Displacement Into Surface']
plt.scatter(x, y)
plt.xlabel('Load On Sample')
plt.ylabel('Displacement Into Surface')
plt.gca().set_xticks([0, 500000000, 1000000000, 1500000000, 2000000000, 2500000000])
plt.gca().set_yticks([-1500, 0, 1500, 3000, 4500, 6000])
plt.show()

Aquí hay una imagen del gráfico al ejecutarlo (en PyCharm SciView por cierto):

Displacement vs Load

Aquí hay un enlace al archivo de datos de ejemplo: https: // drive. google.com/file/d/1RcHzEAS1tELgln9lIh5QuR5wzXinbN1y/view?usp=sharing

1
ephemeralhappiness 15 jun. 2020 a las 22:22

3 respuestas

La mejor respuesta

Sus datos tienen dos filas de encabezado. Como el segundo encabezado es solo una unidad, puede omitirlo:

df = pd.read_csv('/home/quang/Downloads/Data Example.csv', skiprows=[1])

# plot the data:
df.plot(x='Load On Sample', y='Displacement Into Surface' )

Salida:

enter image description here

1
Quang Hoang 15 jun. 2020 a las 19:26
import pandas as pd
import matplotlib.pyplot as plt

# read csv
df = pd.read_csv('data.csv')

# units
a = df.loc[0, 'Displacement Into Surface']
b = df.loc[0, 'Load On Sample']

# skip first row
df = df.loc[df.index > 0]

# reset index - start with 0
df = df.reset_index(drop=True)

# change datatype to float
df = df.astype('float64')

# plotting a scatter-plot
plt.scatter(y=df['Displacement Into Surface'], x=df['Load On Sample'])
plt.show()

Salida diagrama de dispersión

Sus datos no se configuraron en float64. Los tipos de datos mixtos en las filas (cadena (unidades) y flotantes) lo hicieron difícil pero posible.

Espero que mi código haya resuelto tu problema.

0
theompm 15 jun. 2020 a las 20:41

Puede utilizar la biblioteca de trazado de pandas.

df.plot()
0
Colton Neary 15 jun. 2020 a las 19:26