<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Starting from 0.3, krisk support waterfall chart and barline chart.
Step1:  You can differentiate the increase and decrease for each of the bar as shown below.
Step2:  Barline is used to merged line and bar series as one chart, with same category. And here's what bar_line looks like.
Step3:  If you do know that you're data is distinct (category axis, bar/line values) and doesn't need aggregation, you can use is_distinct method to avoid any aggregation method used in default method.
<ASSISTANT_TASK:>
Python Code:
import numpy as np
import pandas as pd
import krisk.plot as kk
from krisk import init_notebook; init_notebook()
np.random.seed(0)
df = pd.DataFrame({'val': -1 + 10 * np.random.randn(10)})
df.head()
kk.waterfall(df['val'])
Explanation: Starting from 0.3, krisk support waterfall chart and barline chart.
End of explanation
kk.waterfall(df['val'], color_coded=True, annotate="outside", up_name="up")
Explanation: You can differentiate the increase and decrease for each of the bar as shown below.
End of explanation
url = 'http://www.stat.ubc.ca/~jenny/notOcto/STAT545A/examples/gapminder/data/gapminderDataFiveYear.txt'
gapminder = (pd.read_csv(url,sep='\t')
             .groupby(['year','continent'], as_index=False)
             .first())
gapminder.head()
kk.bar_line(gapminder, 'continent', 'lifeExp', 'gdpPercap')
Explanation: Barline is used to merged line and bar series as one chart, with same category. And here's what bar_line looks like.
End of explanation
kk.bar_line(gapminder, 'continent', 'lifeExp', 'gdpPercap', is_distinct=True)
Explanation: If you do know that you're data is distinct (category axis, bar/line values) and doesn't need aggregation, you can use is_distinct method to avoid any aggregation method used in default method.
End of explanation
<END_TASK>