Как я могу построить график для данных CSV в Matplotlib - PullRequest
0 голосов
/ 28 сентября 2018

Подскажите, пожалуйста, как построить график для данных CSV.CSV-файл имеет значения x, y, глубины, цвета. Я хочу построить глубину и цвет для осей x и y, я много раз изумлялся, но ничего не нашел должным образом. Пожалуйста, сообщите мне, как построить график для этих значений.?это я попробовал:

from matplotlib import pyplot as plt
from matplotlib import style
import pandas as pd
data=pd.read_csv("Tunnel.csv",names=['x','y','z','color'])
data1 =data[data.z==0]
print (data1)

# plt.plot(data[data.x],data[data.y])
plt.ylabel('yaxis')
plt.xlabel('xaxis')
plt.title('Tunnel 2d')
plt.show()

мои данные приведены ниже enter image description here

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Я предполагаю, что вы хотите использовать цвет и глубину в качестве текстовых аннотаций.

import stuff

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

create df

dep=list(np.random.randint(0,100,10))
col=list(np.random.randint(0,100,10))
y=[int(x/3)+1 for x in range(0,10)]
x=list(range(0,10))
my_df=pd.DataFrame({'x':x,'y':y,'colour':col,'depth':dep})

создать столбец аннотаций

my_df['my_text']='c= '+my_df.colour.astype(str)+','+'d= '+my_df.depth.astype(str)

построить его

plt.figure(figsize=(20,10))
plt.plot(my_df.x,my_df.y,'o')
for i, txt in enumerate(my_df['my_text']):
    plt.annotate(txt, (x[i],y[i]), size=10, xytext=(0,0), ha='left', textcoords='offset points', bbox=dict(facecolor='none', edgecolor='red'))

plt.ylabel('yaxis')
plt.xlabel('xaxis')
plt.title('Tunnel 2d')
plt.show()

Результат

0 голосов
/ 28 сентября 2018

Я предполагаю, что вы хотите, чтобы первые два столбца использовались в качестве оси графика, а столбцы 3 и 4 - в качестве данных графика.

from matplotlib import pyplot as plt
import pandas as pd

data = pd.read_csv("Tunnel.csv")

x = stats[stats.columns[2]]
y = stats[stats.columns[3]]

xlab = list(stats)[0]   #x-axis label
ylab = list(stats)[1]   #y-axis label

fig, pli = plt.subplots()
pli.show()

#Assuming it's a line graph that you want to plot
line, = pli.plot(x, y, color='g', linewidth=5, label='depth vs color')

plt.xlabel(xlab)
plt.ylabel(ylab)
plt.title(title)

fig.savefig('./Directory/Graph.png')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...