Как я могу создать график csv в spyder, но состоящий только из первых 25 строк из 500 строк?

#python #pandas #csv #plot

#python #панды #csv #график

Вопрос:

Итак, я должен создать график, но он должен включать только первые 25 экземпляров из сотен экземпляров

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

data=pd.read_csv("data_korona_dki_x.txt",sep=",", nrows=3)
print(data)

print("Describe :",data.describe())

x=[]
y=[]
z=[]
xx=[]

with open("data_korona_dki_x.txt","r") as csvfile:
    plots=csv.reader(csvfile,delimiter=",")
   
    for row in plots:
        x.append(row[0])
        y.append(int(row[1]))
        z.append(int(row[2]))
        xx.append(int(row[3]))
      
fig,ax=plt.subplots()                

ax.plot(x,y,marker="o",label="Kasus Baru")
ax.plot(x,z,marker="x",label="Meninggal")
ax.plot(x,xx,marker=" ",label="Sembuh")
plt.title("Data Korona Jakarta")
plt.xlabel("Tanggal")
plt.ylabel("Jumlah")
plt.xticks(rotation=90)
legend=ax.legend(loc="upper left", shadow=True)

for i,j in zip(x,y):
    ax.annotate('%s' %j,xy=(i,j),xytext=(4,0), textcoords='offset points')    

for a,b in zip(x,z):
    ax.annotate('%s' %b,xy=(a,b),xytext=(4,0), textcoords='offset points')    

for d,e in zip(x,xx):
    ax.annotate('%s' %e,xy=(d,e),xytext=(4,0), textcoords='offset points')        
#plt.xticks(x)
#plt.yticks(y)

# move_figure(fig,50,50)
print(plt.show())
 

это код, который я использую, но когда я его использовал, график состоял из сотен данных, но мне нужно было показать только первые 20 данных. Как я могу это сделать?

Ответ №1:

Это помешает вам добавить больше данных, чем 20 строк.

 with open("data_korona_dki_x.txt","r") as csvfile:
    plots=csv.reader(csvfile,delimiter=",")
    i = 0
    for row in plots:
        x.append(row[0])
        y.append(int(row[1]))
        z.append(int(row[2]))
        xx.append(int(row[3]))
        if i >= 20:
            break
        i  = 1
 

Комментарии:

1. ЭТО СРАБОТАЛО, большое вам спасибо за помощь, и я надеюсь, что у вас отличная жизнь..

Ответ №2:

С минимальными изменениями в вашем коде:

Вы можете нарезать данные, чтобы использовать только те части, которые вам нужны:

 ax.plot(x[:26],y[:26],marker="o",label="Kasus Baru")
 

Или просто получить меньше данных для начала:

 for row in plots:
    x.append(row[0])
    y.append(int(row[1]))
    z.append(int(row[2]))
    xx.append(int(row[3]))
    if len(x) == 25:
        break
      
 

Примечание: в вашем вопросе вы переключаетесь между 20 и 25. Я использовал 25. Изменение на 20 должно быть достаточно простым.