반응형
다음 형식의 csv 파일이 있습니다.
x1,y1,x2,y2,x3,y3
1,1,2,2,6.5,7.5
2,2,-1,-1,,
,,-2,-3,,
,,-5,-5,,
예를 들어, (x1, y1)
, (x2, y2)
및 (x3, y3)
열을 플로팅하고 싶습니다.
rd1 = some_csv_reader('filename.csv')
matplotlib.pyplot.plot(rd1[:,0],rd1[:,1],rd1[:,2],rd1[:,3])
해결 방법
import pandas as pd
import matplotlib.pyplot as plt
# read the csv
df = pd.read_csv('test.csv')
# select ever two columns and plot them
N = 2 # number of consecutive columns to combine
for d in [df.columns[n:n+N] for n in range(0, len(df.columns), N)]:
x, y = d
plt.scatter(x, y, data=df, label=y)
plt.legend()
markers = ['o', '*', '+']
N = 2
for i, d in enumerate([df.columns[n:n+N] for n in range(0, len(df.columns), N)]):
x, y = d
plt.plot(x, y, '', marker=markers[i], data=df, label=y)
plt.legend()
# select each group of two columns and append the dataframe to the list
df_list = list()
N = 2
for d in [df.columns[n:n+N] for n in range(0, len(df.columns), N)]:
d = df[d]
d.columns = ['x', 'y'] # rename columns
df_list.append(d)
# concat the list of dataframes
dfc = pd.concat(df_list)
# clean the dataframe
dfc = dfc.dropna().drop_duplicates().sort_values('x').reset_index(drop=True)
# display(dfc)
x y
0 -5.0 -5.0
1 -2.0 -3.0
2 -1.0 -1.0
3 1.0 1.0
4 2.0 2.0
5 6.5 7.5
# plot
plt.plot('x', 'y', '', data=dfc)
참조 페이지 https://stackoverflow.com/questions/63759271
반응형
'파이썬' 카테고리의 다른 글
파이썬에서 평균과 분산 계산 (0) | 2020.09.13 |
---|---|
파이썬 지속적으로 웹 스크래핑하는 Flask 앱 배포 옵션 (0) | 2020.09.12 |
파이썬 유형 오류 : flag1 ()에 1 개의 필수 위치 인수가 없습니다 : 'y' (0) | 2020.09.12 |
파이썬 NameError : 파일 디렉터리에서 분석을 위해 데이터를로드하려고합니다. (0) | 2020.09.12 |
파이썬 단일 값이 속하는 히스토그램 빈을 찾는 빠른 방법은 무엇입니까? (0) | 2020.09.12 |
댓글