Julia가 조금 버즈하고 있다고 들었기 때문에 정말로 그런가, 확인해 보았다

이 기사는?



신년에 들어가고 나서 Julia가 조금 버즈하고 있다고 하는 소문이 있었으므로, Qiita의 투고수의 시계열 플롯을 해 봐 확인한 기사입니다.

Julia가 버즈가 있습니까?



조금 전부터 개인적 흥미로 Julia를 만지고 있었습니다만, 그 때 여러가지 참고로 했던 게시하는 사람가 이런 발언을 하고 있었기 때문에 신경이 쓰였습니다.

Julia의 붐, 어차피 하루나 이틀 정도로 끝날 것이라고 생각했지만, 1주일 지나지만 아직도 튜토리얼에의 액세스수가가 떨어지지 않는다(오히려 조금 성장하고 있다). htps // t. 코 / f 즈오기 H99 피 c. 라고 r. 코 m / VW 파 RT 베 yv — ("·ω·)"카오 Julia㌠ (@bicycle1885) 2018년 1월 9일


Qiita의 게시물 수를 살펴 보았습니다.



Julia 태그가 있는 게시물을 검토해 보았습니다. 그 때 Qiita API의 파이썬 래퍼 를 사용해 주셨습니다.



Qiita API



Qiita API를 사용하는데 조금 막혔으므로 비망록적으로 기록을 남겨 둡니다.



qiita_v2.py는 pip를 사용할 수 있으므로



$ pip install qiita_v2


합니다. 사용법은 여기 을 참고로, 라고 써 있었으므로 히아 문서를 보면서 사용해 보았습니다.



이번에는 'Julia'태그가 들어있는 게시물을 추출하고 싶었기 때문에 QiitaClient.list_tag_items 메소드를 사용합니다.



import matplotlib.pyplot as plt
from qiita_v2.client import QiitaClient
import datetime as dt

access_token = "**************************"
client = QiitaClient(access_token)


액세스 토큰은 이번에는 자신의 계정을 인증했지만 qiita 계정이 없어도 QiitaClient.create_access_token()로 만들 수있는 것 같습니다. 자신의 계정으로 액세스 토큰을 만드는 경우는 자신의 Qiita 페이지의 설정→애플리케이션→개인용 액세스 토큰으로 만들 수 있습니다.



'Julia' 태그가 붙은 게시물을 원했기 때문에



request = client.list_tag_items('Julia')
json = request.to_json()


그러나 돌아온 json은 20개 요소만 있는 것 같았다. Julia 태그가 붙은 투고는 수동 검색이라고 220 정도 있었으므로 뭔가 이상합니다.



래퍼의 내용



어쩔 수 없기 때문에 래퍼의 소스를 읽어 보았더니, client.list_tag_items('Julia') 는'' htps : // 코 m / 타 gs / 주아 / ms ' 를 돌려주기로 되어 있었습니다. 이것이라고 하면, 1 페이지째에 있는 항목 밖에 당겨 이것 없는 것이 됩니다. 인수 params 에 쿼리 파라미터를 넣을 수 있었던 것 같았기 때문에 2 페이지째 이후는 params={'page': n} (와)과 같이 해 페이지를 지정하기로 했습니다. 수동으로 12페이지가 있음을 확인했기 때문에



n_pages = 12
time_stamps = []

request = client.list_tag_items('Julia') # 1ページ目
json = request.to_json()
for i in range(len(json)):
    time_stamps.append(json[i]['created_at'])

for page in range(2, n_pages+1):
    request = client.list_tag_items('Julia', params={'page': page})
    json = request.to_json()
    for i in range(len(json)):
        time_stamps.append(json[i]['created_at'])


로 타임스탬프만 추출했습니다. 같은 처리가 두 번 쓰여지지만 마음에 들지 않도록 ...



타임스탬프 처리



이대로라면 타임스탬프는 str형인 채이므로 datetime형으로 고치게 됩니다. time_stamps의 요소는



print(time_stamps[0])  #=> 2018-01-08T21:12:45+09:00


와 같이 되어 있으므로 타임 존 정보를 컷 합니다(실제는 이 처리 필요하지 않습니까?)



time_stamps = list(map(lambda x: x.replace("T", " "), time_stamps))
time_stamps = list(map(lambda x: x.replace("+09:00", ""), time_stamps))


그런 다음 datetime 형식으로 수정합니다.




time_stamps = list(map(lambda x: dt.datetime.strptime(x, "%Y-%m-%d %H:%M:%S")


이제 matplotlib에 전달할 수 있습니다.



다음에는 히스토그램에서도 해보면 좋을 것입니다.



plt.hist(time_stamps, bins=20)
plt.xlabel("Date")
plt.ylabel("Number of Posts")
plt.xticks([dt.date(2013, 1, 1), dt.date(2014, 1, 1), dt.date(2015, 1, 1),
 dt.date(2016, 1, 1), dt.date(2017, 1, 1), dt.date(2018, 1, 1)])

plt.show()




확실히 최근 폭발적으로 게시물이 증가하고있는 것 같습니다!


좋은 웹페이지 즐겨찾기