pip3 ku rakib google-cloud-bigquery matplotlib numpy pandas python-telegram-bot
Isku xidhka Google BigQuery API
Haddii aan rabno inaan isticmaalno adeegga, waxaan u baahanahay inaan ku xirno Google BigQuery API. Si aan tan u sameyno waxaan aadeynaa Qalabixiyaha Google Developers oo samee mashruuc cusub (ama dooro mid jira).
Shaqadani waxay soo celin doontaa codsiga qaab xogeed ahaan.
Xogta sawirida
Si loo xalliyo dhibaatadan, dooro matplotlib.
soo dejiso matplotlib.pyplot sida plt
Waxaan u baahanahay shan cabbir, halka x ay tahay xogta dhidibka x, x_label waa ciwaanka dhidibka, y waa xogta dhidibka y, y_label waa ciwaanka dhidibka, ciwaankana waa ciwaanka muuqaalka oo dhan.
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
Kaydi sawirka
Hadda aan isticmaalno laba hawlood si aan u abuurno muuqaal oo aan u badbaadino.
Waxaan soo diri doonaa tirada qoraallada la daabacay maalin kasta. Marka hore waxaan qornaa codsi.
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
"""
Weydiinta waxay caawisaa ururinta xogta laba toddobaad laga bilaabo Disembar 2, 2018.
Waxaan isticmaalnaa taariikhdaan sababtoo ah 2018-12-02 waa xogtii ugu dambeysay ee lagu duubay bigquery-public-data.stackoverflow.post_history, xaaladaha kale waxaad isticmaali kartaa CURRENT_DATE() si aad u hesho xogta cusub.
Wac shaqada query_to_bigquery si aad xogta u hesho.
dataframe = su'aal_to_bigquery( waydiin)
Kadibna waxaan isticmaalnaa tiirka xogta taariikhda dhidibka x, iyo tiirka guud_posts ee dhidibka y.
x = qaab-dhismeedka xogta ['taariikhda'].tolist()
y = qaab-dhismeedka xogta ['total_posts'].tolist()
Waxaan u sawirnaa annagoo isticmaalna shaqada visualize_bar_chart oo waxaan u kaydinnaa sawir ahaan.
plt = visualize_bar_chart
plt.savefig('viz.png')
Waxaan ku duubnaa summadan hawl la yiraahdo 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')
Soo dir sawir
Si aad warbixin ugu dirto qaataha, waxaad u baahan tahay inaad ogaato qiyaasta chat_id.
Waxaan isticmaalnaa userinfobot oo ku qor/bilow. Botku wuxuu kaga jawaabayaa macluumaadka lagama maarmaanka ah, chat_id wuxuu ku jiraa goobta aqoonsiga.
Hadda aynu abuurno shaqada send_image. Waxay isticmaali doontaa shaqada get_and_save_image si ay u soo ceshato oo u kaydiso sawirka. Kadibna wax walba waxaan u direynaa xiriirka saxda ah.
Ugu dambeyntii, waxaan abuurnaa shaqo kale, ugu weyn, si loo bilaabo codsiga. Ha iloobin inaad u bedesho YOU_TOKEN bot.
Xusuusnow: barnaamijkani wuxuu si toos ah u soo diri doonaa sawirka wakhtiga aad sheegtay. Tusaale ahaan, waxaanu soo diri doonaa warbixin sagaalka subaxnimo maalin kasta.