사용자가 블로그를 더 많이 또는 더 적게 작성한 달을 나타내는 선 차트를 만드는 방법은 무엇입니까?

DarioushPD

이것이 내가 원하는 출력입니다.

여기에 이미지 설명 입력

위의 차트에 따르면 사용자가 3 월에서 4 월 사이에 게시물을 많이 썼다가 7 월에는 그 수가 줄었습니다.

나는 표와 원형 차트로 작업했지만 이것을 작동시킬 수 없었습니다. 다음은 이러한 목적으로 사용할 수있는 Django 모델의 샘플입니다.

class Blog(models.Model):
    title = models.CharField(max_length=160)
    ...
    created_at = models.DateTimeField(auto_now_add=True)

여기서 사용할 데이터는 created_at필드 에서 추출 할 수 있다는 것을 알고 있지만 그 JavaScript부분 을 수행하는 방법을 모르겠습니다 . {"blogs": Blog.objects.all()}템플릿에서 컨텍스트를 전달하면 선 막대처럼 위에 어떻게 플로팅합니까? 도와주세요.

감사합니다.

Tms91

Django에서 작업하고 있으므로이 그래프를 plotly 로 그 립니다 .

views.py에서 :

import plotly.offline as pyo
import plotly.graph_objs as go
import datetime as dt
import calendar



time_values = Blog.objects.all().order_by("created_at")

time_values = [ element.created_at for element in time_values ]

time_values = [ element.month for element in time_values ]



published_amounts = [ 1 for element in time_values ]

new_time_values = [ time_values[0] ]
published_amounts = [ 0 ]

j=0

# the cycle prevents mixing months from different years
for i in range( 1, len(time_values) ):

    if time_values[i]==time_values[i-1]:
        published_amounts[j] = published_amounts[j] + 1

        
    else:   
        new_time_values.append(time_values[i])
        published_amounts.append(1)        
        j=j+1


new_time_values = [calendar.month_name[element] for element in new_time_values ]      
        

post_line = go.Scatter(
                    x=new_time_values, 
                    y=published_amounts,
                    mode='lines+markers',
                    name="Published posts",              
                    )

data = [ post_line, ]  

layout = go.Layout(showlegend=True, )

fig = go.Figure(data=data, layout=layout)

plt_div = pyo.plot(fig, output_type='div')

context_dict={
        "plt_div":plt_div
                }

return render(request, 'your_page.html', context_dict)

그런 다음 템플릿에

{{plt_div}}

그래프를 표시 할 위치입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관