저는 파이썬 사용법을 배우고 있으며 숙제로 Covid-19 데이터와 관련된 CSV 파일을 읽어야합니다.
import pandas as pd
import matplotlib.pyplot as plt
def graficarUnPais (data, pais):
x1 = []
y1 = []
x2 = []
y2 = []
for record in data:
if (record['location'] == pais):
if ((not (mt.isnan(record['total_cases'])))):
x1.append(record['date'])
y1.append(record['total_cases'])
if ((not (mt.isnan(record['total_deaths'])))):
x2.append(record['date'])
y2.append(record['total_deaths'])
plt.title("Casos y Muertes Totales")
plt.xlabel('Día')
plt.ylabel('Casos')
plt.plot(x1, y1, label='Casos Totales')
plt.plot(x2, y2, label='Muertes Totales')
plt.xticks(rotation=90)
plt.legend()
plt.show()
archivo = pd.read_csv('full_data.csv')
data_list = archivo.to_dict("list")
data_records = archivo.to_dict("records")
paises = 'Argentina'
graficarUnPais(data_records, pais)
따라서 그래픽은 정확하지만 형식이 마음에 들지 않고 날짜가 모두 뭉개져 있습니다. 모든 x 축 점을 조금 더 분리하는 방법이 있는지 궁금합니다. 그런데 PyCharm을 사용하고 있습니다.
가로 스크롤바 같은 것을 넣는 방법이 있는지 모르겠습니다.
다음은 그래픽 사진입니다.
xtick
배열 로 표시하려는 값을 설정하는 것을 포함하여 많은 옵션이 있습니다 (예 : matplotlib에서 x 또는 y 축의 "틱 빈도"변경? 참조 ). 귀하의 경우에는 간단하게 사용할 수 있습니다.
skip = 5
plt.xticks(x1[::skip]))
참고로 가정 x1=x2
합니다. 그러나이를 수행하는 올바른 방법은 간결한 데이터 포맷터 기능을 사용하는 것입니다.
https://matplotlib.org/3.1.0/gallery/ticks_and_spines/date_concise_formatter.html
편집 : 슬라이더가 전체의 일부에 집중하도록하려면 다음을 수행 할 수 있습니다.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
import matplotlib.dates as mdates
import datetime as dt
window = 20
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.25)
#Generating dates using https://stackoverflow.com/questions/9627686/plotting-dates-on-the-x-axis-with-pythons-matplotlib
N = 100
y = np.random.rand(N)
now = dt.datetime.now()
then = now + dt.timedelta(days=100)
days = mdates.drange(now,then,dt.timedelta(days=1))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
ax.xaxis.set_major_locator(mdates.DayLocator(interval=5))
ax.plot(days, y)
axshow = plt.axes([0.25, 0.1, 0.65, 0.03])
s = Slider(axshow, 'Range', 0, N, valinit=0, valstep=1)
def update(val):
ax.set_xlim(days[int(val)],days[int(val)+window])
s.on_changed(update)
fig.show()
슬라이더로 선택할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다