Momwe mungagawire malipoti osavuta ku robot. Kulemba bot mu Python ndi Google BigQuery
Kodi muli ndi ntchito zomwe zimabwereza tsiku ndi tsiku, sabata ndi sabata? Mwachitsanzo, kulemba malipoti. Mumapempha deta, kusanthula, kuwona m'maganizo (pangani ma graph, ma chart), ndiyeno tumizani kwa abwana anu. Koma bwanji ngati zonsezi zidangochitika zokha?
Mu phunziro ili tipanga bot ya Telegalamu yomwe ingathandize kuchitira malipoti. Ndipo chozizira kwambiri ndi chakuti pulogalamu yonseyi idzakhala ndi mizere 50 yokha ya code! Ngati mukupanga bot ya Telegraph kwa nthawi yoyamba, ndiye kuti muyeneranso kuwerenga iyi positi.
Ngati zonse zidayenda bwino, ndi nthawi yoti muyambe kulemba pulogalamuyi.
Kupanga pulogalamu
Pa phunziroli tidzagwiritsa ntchito deta kuchokera ku bigquery-public-data.stackoverflow, pa lipoti lathu tidzasankha chiwerengero cha zofalitsa za tsiku ndi tsiku.
Timafunikira magawo asanu, pomwe x ndi data ya x-axis, x_label ndiye mutu wa axis, y ndi data ya y-axis, y_label ndiye mutu wa axis, ndipo mutu ndi mutu wa chiwonetsero chonse.
def visualize_bar_chart(x, x_label, y, y_label, title):
plt.title(title)
plt.xlabel(x_label)
plt.ylabel(y_label)
index = np.arange(len(x))
plt.xticks(index, x, fontsize=5, rotation=30)
plt.bar(index, y)
return plt
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
Funsoli limathandizira kusonkhanitsa deta kwa milungu iwiri kuyambira pa Disembala 2, 2018.
Timagwiritsa ntchito tsikuli chifukwa 2018-12-02 ndi data yaposachedwa kwambiri yojambulidwa mu bigquery-public-data.stackoverflow.post_history, nthawi zina mutha kugwiritsa ntchito CURRENT_DATE() kuti mupeze zatsopano.
Imbani query_to_bigquery kuti mupeze zambiri.
dataframe = query_to_bigquery(funso)
Kenako timagwiritsa ntchito gawo la data la x-axis, ndi total_posts column ya y-axis.
x = dataframe['date'].tolist()
y = dataframe['total_posts'].tolist()
Timakulunga code iyi mu ntchito yotchedwa get_and_save_image.
def get_and_save_image():
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
dataframe = query_to_bigquery(query)
x = dataframe['date'].tolist()
y = dataframe['total_posts'].tolist()
plt = visualize_bar_chart(x=x, x_label='Date', y=y, y_label='Total Posts', title='Daily Posts')
plt.savefig('viz.png')
Tumizani chithunzi
Kuti mutumize lipoti kwa wolandira, muyenera kudziwa chat_id parameter.
Timagwiritsa ntchito userinfobot ndi lembani /kuyamba. Bot imayankha ndi zofunikira, chat_id ili m'munda wa id.