4.1 Transactions
The plot on the bottom of this page provides visualization of the total number of transactions that have occurred on a daily basis for each of the three cryptocurrencies.
The whole process of acquiring the data is shown bellow. Clicking the toggle buttons expands each part of the code.
from google.cloud import bigquery
from google.oauth2 import service_account
import plotly.graph_objects as go
import plotly.tools as tls
from plotly.offline import plot, iplot, init_notebook_mode
from IPython.core.display import display, HTML
init_notebook_mode(connected = True)
config={'showLink': False, 'displayModeBar': False}
credentials = service_account.Credentials.from_service_account_file(
'cred.json')
project_id = 'intricate-yew-283611'
client = bigquery.Client(credentials= credentials,project=project_id)
Bitcoin
The following query (click the toggle button to expand the code) outputs the number of daily transactions for Bitcoin
query_job = client.query("""
SELECT EXTRACT(DAY FROM block_timestamp) as Day,
EXTRACT(MONTH FROM block_timestamp) as Month ,
EXTRACT(YEAR FROM block_timestamp) as Year,
concat(Cast(EXTRACT(YEAR FROM block_timestamp) as String),'-',Cast(EXTRACT(MONTH FROM block_timestamp) as String),'-',Cast(EXTRACT(DAY FROM block_timestamp) as String)) as Datum,
COUNT(*) as TotalNoTransactions
FROM `intricate-yew-283611.Blockchain.Bitcoin_Transactions`
GROUP BY Year,Month, Day, Datum
Order By Year, Month, Day
""")
results = query_job.result()
bitcoin_df = results.to_dataframe()
print(bitcoin_df)
Bitcoin Cash
The following query (click the toggle button to expand the code) outputs the number of daily transactions for Bitcoin Cash
query_job1 = client.query("""
SELECT EXTRACT(DAY FROM block_timestamp) as Day,
EXTRACT(MONTH FROM block_timestamp) as Month ,
EXTRACT(YEAR FROM block_timestamp) as Year,
concat(Cast(EXTRACT(YEAR FROM block_timestamp) as String),'-',Cast(EXTRACT(MONTH FROM block_timestamp) as String),'-',Cast(EXTRACT(DAY FROM block_timestamp) as String)) as Datum,
COUNT(*) as TotalNoTransactions
FROM `intricate-yew-283611.Blockchain.Cash_Transactions`
GROUP BY Year,Month, Day, Datum
Order By Year, Month, Day
""")
results_cash = query_job1.result()
cash_df = results_cash.to_dataframe()
print(cash_df)
Litecoin
The following plot (click the toggle button to expand the code) outputs the number of daily transactions for Litecoin
query_job2 = client.query("""
SELECT EXTRACT(DAY FROM block_timestamp) as Day,
EXTRACT(MONTH FROM block_timestamp) as Month ,
EXTRACT(YEAR FROM block_timestamp) as Year,
concat(Cast(EXTRACT(YEAR FROM block_timestamp) as String),'-',Cast(EXTRACT(MONTH FROM block_timestamp) as String),'-',Cast(EXTRACT(DAY FROM block_timestamp) as String)) as Datum,
COUNT(*) as TotalNoTransactions
FROM `intricate-yew-283611.Blockchain.Litecoin_Transactions`
GROUP BY Year,Month, Day, Datum
Order By Year, Month, Day
""")
results_lite = query_job2.result()
lite_df = results_lite.to_dataframe()
print(lite_df)
fig = go.Figure()
fig.add_trace(go.Scatter(x = bitcoin_df['Datum'], y = bitcoin_df['TotalNoTransactions'],name = 'Bitcoin'))
fig.add_trace(go.Scatter(x = cash_df['Datum'], y = cash_df['TotalNoTransactions'], name = 'Bitcoin Cash'))
fig.add_trace(go.Scatter(x = lite_df['Datum'], y = lite_df['TotalNoTransactions'], name = 'Litecoin', line = dict(color = 'Light Green')))
fig.update_layout(paper_bgcolor = 'White',xaxis_title="Date",
yaxis_title='Number of Transactions',plot_bgcolor="#FFFFFF", hovermode="x",
hoverdistance=100,
spikedistance=1000,
)
fig.update_xaxes(showspikes=True,spikethickness=2,
spikedash="dot",
spikecolor="#999999",
spikemode="across",showgrid=False,ticks = 'outside', showline=True, linecolor='black',rangeslider_visible=True,
rangeselector=dict(
buttons=list([
dict(count=1, label="1m", step="month", stepmode="backward"),
dict(count=6, label="6m", step="month", stepmode="backward"),
dict(count=1, label="YTD", step="year", stepmode="todate"),
dict(count=1, label="1y", step="year", stepmode="backward"),
dict(step="all")
])
))
fig.update_yaxes(showgrid=False, ticks = 'outside', showline=True, linecolor='black')
plot(fig, filename = 'fig.html', config = config)
#ThebeLab
display(HTML('fig.html'))