使用Python可视化实现循环作图

点击上方“Python共享之家”,进行关注

回复“资源”即可获赠Python学习资料

与君离别意,同是宦游人。

大家好,我是皮皮。

一、前言

前几天在Python白银交流群【在 途中要勤奋的熏肉肉】问了一道Python可视化处理的问题,如下图所示。

f14e64c332c2648e36535ef52668333b.png

原始代码,如下所示:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as st

result_parameter_peak = pd.read_csv("result_parameter_peak.csv", encoding="utf_8_sig")

# 设置画布
fig = plt.figure(figsize=(20, 8))  # figsize是常用的参数.(宽,高)
axl = fig.add_subplot(1, 1, 1)

for i in range(len(result_parameter_peak)):
    x = np.arange(0, 400, 1)
    # 绘制gamma曲线
    y661 = st.gamma.pdf(x, result_parameter_peak.iloc[i, 1], scale=result_parameter_peak.iloc[i, 2])
    axl.plot(x, y661, 'r-.', label="α= 9.9028,β=10.4205")
    # 设置坐标轴标题
    axl.set_xlabel('Time')
    axl.set_ylabel('Probility')
    axl.set_title('分布')
    # 可视化
    plt.show()

得到的只是单个的图。

bf074622b31eab1cd923b7c6040167de.png

二、实现过程

这里【月神】给了一个思路和一份示例代码,如下所示:

ed220422c3ebfe5023bdc0c48dedf3b3.png
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as st

result_parameter_peak = pd.read_csv("result_parameter_peak.csv", encoding="utf_8_sig")

plt.figure()
for i, alpha, beta in result_parameter_peak.itertuples():
    x = np.arange(0, 300, 1)
    # 绘制gamma曲线
    y661 = st.gamma.pdf(x, alpha, scale=beta)
    plt.plot(x, y661, '-.')
    # 设置坐标轴标题
    plt.xlabel('Time')
    plt.ylabel('Probility')
    plt.title('分布')

# 可视化
plt.show()

运行之后,结果如下图所示:

65e3011a48158016f9ab14cb86c78c5f.png

顺利地解决了粉丝的问题!

ef824f8d0e891ecafd4b11d9ad0e107c.png

后来【小趴菜】又给图加了图注,看上去高大上一些,代码如下所示:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as st

result_parameter_peak = pd.read_csv("result_parameter_peak.csv", encoding="utf_8_sig")

plt.figure()
for i, alpha, beta in result_parameter_peak.itertuples():
    x = np.arange(0, 300, 1)
    # 绘制gamma曲线
    y661 = st.gamma.pdf(x, alpha, scale=beta)
    # plt.plot(x, y661, '-.')
    plt.plot(x, y661, '-.', label="α:" + str(alpha) + "β:" + str(beta))
    # 设置坐标轴标题
    plt.xlabel('Time')
    plt.ylabel('Probility')
    plt.title('fenbu')
    
# 可视化
plt.legend()
plt.show()

得到的效果图如下所示:

21b5706017ca1dbff21d663ef1269071.png

三、总结

大家好,我是皮皮。这篇文章主要盘点了一道matplotlib作图的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【在 途中要勤奋的熏肉肉】提问,感谢【月神】、【小趴菜】给出的思路和代码解析,感谢【dcpeng】、【千葉ほのお】、【德善堂小儿推拿-瑜亮老师】、【猫药师Kelly】、【Ming】等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

988c4f4f675d6048c77dad5afe2fca2f.png

------------------- End -------------------

往期精彩文章推荐:

6838b7a6fcaf214b700666e9cc92803c.png

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【

万水千山总是情,点个【在看】行不行

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值