in data_measurements/zipf/zipf.py [0:0]
def make_zipf_fig(z):
xmin = z.xmin
word_ranks_unique = z.word_ranks_unique
observed_counts = z.observed_counts
zipf_counts = z.predicted_counts # "] #self.calc_zipf_counts()
ranked_words_list = make_unique_rank_word_list(z)
layout = go.Layout(xaxis=dict(range=[0, 100]))
fig = go.Figure(
data=[
go.Bar(
x=word_ranks_unique,
y=observed_counts,
hovertext=ranked_words_list,
name="Word Rank Frequency",
)
],
layout=layout,
)
fig.add_trace(
go.Scatter(
x=word_ranks_unique[xmin: len(word_ranks_unique)],
y=zipf_counts[xmin: len(word_ranks_unique)],
hovertext=ranked_words_list[xmin: len(word_ranks_unique)],
line=go.scatter.Line(color="crimson", width=3),
name="Zipf Predicted Frequency",
)
)
# Customize aspect
# fig.update_traces(marker_color='limegreen',
# marker_line_width=1.5, opacity=0.6)
fig.update_layout(
title_text="Word Counts, Observed and Predicted by Zipf")
fig.update_layout(xaxis_title="Word Rank")
fig.update_layout(yaxis_title="Frequency")
fig.update_layout(
legend=dict(yanchor="top", y=0.99, xanchor="left", x=0.10))
return fig