queryset => dataframe => plot
This commit is contained in:
parent
e9b9e6fd32
commit
944bc4e529
55
df_for_plotly
Normal file
55
df_for_plotly
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
from django_pandas.io import read_frame
|
||||||
|
import plotly.express as px
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
|
||||||
|
def pie(df, values, names):
|
||||||
|
#https://plotly.com/python/pie-charts/
|
||||||
|
|
||||||
|
fig = px.pie(df,
|
||||||
|
values=values,
|
||||||
|
names=names,
|
||||||
|
#hover_data=['lifeExp']
|
||||||
|
)
|
||||||
|
#title=None, orientation="h", y=1, yanchor="bottom", x=0.5, xanchor="center"\
|
||||||
|
legend=dict(
|
||||||
|
x=0.9,
|
||||||
|
y=0.9,
|
||||||
|
xref="container",
|
||||||
|
yref="container",
|
||||||
|
bgcolor="Gold",
|
||||||
|
)
|
||||||
|
fig.update_layout(
|
||||||
|
font_family="Rockwell",
|
||||||
|
legend=dict(
|
||||||
|
#title=None, orientation="h", y=1, yanchor="bottom", x=0.5, xanchor="center"
|
||||||
|
x=0.9,
|
||||||
|
y=0.9,
|
||||||
|
xref="container",
|
||||||
|
yref="container",
|
||||||
|
bgcolor="Gold",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
config = {'displayModeBar': False}
|
||||||
|
plot = fig.to_html(config=config, full_html=False, div_id=f"pie_plot_{uuid.uuid4()}", default_width="100%")
|
||||||
|
return plot
|
||||||
|
|
||||||
|
|
||||||
|
def bars(df, oy, ox, horizontal=False):
|
||||||
|
|
||||||
|
fig = px.bar(df,
|
||||||
|
x=ox,
|
||||||
|
y=oy,
|
||||||
|
#color="medal",
|
||||||
|
orientation='h' if horizontal else 'v',
|
||||||
|
)
|
||||||
|
config = {'displayModeBar': False}
|
||||||
|
plot = fig.to_html(config=config, full_html=False, div_id=f"bar_plot_{uuid.uuid4()}", default_width="100%")
|
||||||
|
return plot
|
||||||
|
|
||||||
|
def touched_view(request):
|
||||||
|
|
||||||
|
touched_data = Author.objects.values('update_touch_date').annotate(co=Count('update_touch_date')).order_by('update_touch_date').values('co', 'update_touch_date')
|
||||||
|
|
||||||
|
touched_df = read_frame(qs=touched_data)
|
||||||
|
context['authors_bars'] = bars(touched_df, ox="update_touch_date", oy="co")
|
Loading…
x
Reference in New Issue
Block a user