【D12】制作图表:加权指数和交易金额的图表

前言

进行观察还是需要用图表表示,这时候叠图就很好用。之前都一张一张画,现在呈现叠图的方式。

本日程序码使用:d12_MarketTransInfo_pic.ipynb


作法

首先:取得资料库资料

这次我们要从StockTransactionInfo取得资料:

# 取得资料库的资料
df = pandas.read_sql("SELECT * FROM StockTransactionInfo WHERE TradeDate >'2021-09-01'", con=conn)
conn.close() # 关闭连线

各自绘图

取得资料後,存在df参数中,然後我们先画出每日加权指数的图和每日的交易金额的图。

首先是加权指数的图,直接把X轴资料使用df["TradeDate"],Y轴资料使用df["Taiex"]

# 画图
plt.plot(df["TradeDate"], df["Taiex"],"r")  # (x轴资料, y轴资料, 线的颜色)
plt.title("Taiex", {"fontsize":15})     # 设定图的标题及文字大小

产生的图片就会长这样:

https://ithelp.ithome.com.tw/upload/images/20210912/20103826OCVIUVwhwz.png

接着是画每日的交易量,X轴资料不变,把Y轴资料改成df["TranscationAmount"]

# 画图
plt.plot(df["TradeDate"], df["TranscationAmount"],"b")  # (x轴资料, y轴资料, 线的颜色)
plt.title("TranscationAmount", {"fontsize":15})     # 设定图的标题及文字大小

因此会画出:

https://ithelp.ithome.com.tw/upload/images/20210912/20103826t21NnKvmyC.png

合并图表

这样做成两张图,虽然很简单,但是很难比较之间的关系,因此就需要合并图表,也就是叠图的概念。

首先要制作子图,也就是使用plt.subplots(),然後把这两个图表都放在这里面,最後画出大图把这两个子图一同呈现。

所以先制作框架:

fig, ax1 = plt.subplots()
plt.title("Taiex point & Amount")
plt.xlabel("date")
ax2 = ax1.twinx()

然後做出第一张表,是用折线图的方式呈现加权指数。其中的线和字都是蓝色的:

ax1.set_ylabel("Taiex", color="blue")
ax1.plot(df["TradeDate"], df["Taiex"], color="blue", alpha=1)
ax1.tick_params(axis="y", labelcolor="blue")

第二张表,是用长条图表示,这样比较清楚辨别两个不同的资料,而这边的资料是用红色呈现,并且有透明度。

ax2.set_ylabel("Amount", color="r")
ax2.bar(df["TradeDate"], df["TranscationAmount"], color="r", alpha=0.5) # alpha: 增加透明度
ax2.tick_params(axis="y", labelcolor="r")

最後再画出来:

fig.tight_layout()
plt.show()

结果就是这样,一目了然:

https://ithelp.ithome.com.tw/upload/images/20210912/20103826dERwqt4KsA.png


後记

这边除了让我们更了解数据,也熟悉一下matplotlib的画图功能,因为叠图观察比一张张分开看更容易理解,可以验证我们确认讯号灯的逻辑。


<<:  增加 App 下载量必备的 ASO 工具

>>:  Python list 进阶

每日挑战,从Javascript面试题目了解一些你可能忽略的概念 - Day10

tags: ItIron2021 Javascript 前言 终於迈入第10天啦! 我们昨天讲完资料...

Day 06:专案01 - 超简单个人履历05 | CSS版面布局、Flex

昨天讲完的CSS的文字和区块属性後,今天要接续介绍版面布局的属性,以及一个非常好用的布局容器 - F...

D22: 工程师太师了: 第11.5话

工程师太师了: 第11.5话 杂记: 有许多幸福企业(养猪场)会提供下午茶,让员工在下午处理繁复工作...

[Day19] Flutter - Const: Shared(part3)

前言 Hi, 我是鱼板伯爵今天要介绍Const,利用它来宣告一些重复使用且不变的值,教学内容只会撷取...

[Python]如何Text to Speech: pyttsx3, gTTS

https://pythonprogramminglanguage.com/text-to-spee...