范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

如何使用python绘制渐变色的柱状堆积图

  前言
  python 版本:3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52)
  演示环境:jupyter-lab
  备注:这里默认大家都已经安装了 python 及其相关的工具包。  导入依赖包import numpy as np import matplotlib.pyplot as plt import pickle import os获取文件列表,为后面读取数据做准备
  在绘制柱状堆积图之前,我们需要为其准备好用于展示的数据。这里我从准备好了的 pickle 文件中进行读取,所以需要先获取文件列表。 我们在解决实际问题时,每个人的数据不尽相同,所以大家可以视自己的情况而定,总之是要为获取数据做准备。  file_dir = "./pickle/" file_list = os.listdir(file_dir) x_label = []  for filename in file_list:     temp_str = filename.split(".")[0]     label = temp_str.split("_")[1]     x_label.append(label)  print("length of file_list: {}".format(len(file_list))) print(file_list) print(x_label)加载数据,使用 bar 函数绘制渐变色柱状堆积图
  我们将调用 bar 函数来绘制柱状图。渐变色的关键在于我们设置了自定义颜色,且颜色随着柱状图层次堆积按比例变化。 代码如下:  fig = plt.figure(figsize=(10,10), dpi=150) ax = fig.add_subplot(111)  # 设置字体,以便支持中文显示 plt.rcParams["font.sans-serif"] = [u"Microsoft YaHei"]  x = np.arange(len(x_label)) bottom_y = [] for i in range(len(x_label)):     bottom_y.append(0.0) bottom_y = np.array(bottom_y)  top_k = 10 for i in range(top_k):     change_pct_list = []     bar_width = 0.25     for filename in file_list:         file_path = file_dir + filename         f = open(file_path, "rb")          concept_stock_list = pickle.load(f)         f.close         change_pct_list.append(concept_stock_list[top_k-i-1]["平均涨跌幅"])     y = np.array(change_pct_list)     # 颜色按层次进行比例变化     red_val = i * (1/top_k)     green_val = 0.4 - i*(0.3/top_k)     ax.bar(x, y, color=(red_val, green_val, 0.1), bottom=bottom_y, tick_label=x_label, width=bar_width)     bottom_y += y  image_path = "pickle/渐变色的柱状堆积图.jpg" fig.savefig(image_path)
  运行以上代码,就可以看到如下图所示的渐变色柱状堆积图了。
  为柱状堆积图添加文字标签
  为了效果好看一些,我们还可以为柱状堆积图添加数据对应的标签。数据的标签,我这里依然从前面准备好的 pickle 文件中获取。  for i,filename in enumerate(file_list):     file_path = file_dir + filename     f = open(file_path, "rb")      concept_stock_list = pickle.load(f)     f.close     text_y = 0.0     for j in range(top_k):         text_label = concept_stock_list[top_k-j-1]["name"]         change_pct = concept_stock_list[top_k-j-1]["平均涨跌幅"]                  stocks_num = len(concept_stock_list[top_k-j-1]["stocks"])         text_label = "{:.2f}".format(change_pct) + "% " + text_label + "[{}]".format(stocks_num)         ax.text(i, text_y+change_pct/2, text_label, ha="left")         text_y += change_pct  ax.set_xlabel("日期") ax.set_ylabel("平均涨跌幅") ax.set_title("2023行业热度堆积图",fontsize=10) image_path = "pickle/加文字标签的渐变色柱状堆积图.jpg" fig.savefig(image_path)
  添加标签后的效果图如下:
  结语
  使用 python 绘制渐变色的柱状堆积图的方法,大致就是上面描述的这几个步骤了,希望对大家有所帮助。有问题欢迎在评论区讨论。

国乒孤胆英雄!21位队友惨遭淘汰,中国队仅她一人夺唯一一冠近日在WTT捷克站的比赛中,中国队的球员表现的并不是特别出色,在男子单打赛场上,只有周启豪这位球员打进了4强,不过他在半决赛的比赛中输给了日本选手,没能更进一步,而在女单赛场上,中明日之后运动打卡活动开启!燃烧酷热激情挡也挡不住的烈日,擦也擦不干的汗水,丝毫不能阻挡幸存者们探索未知的热情。抓住夏天的尾巴,来一场酣畅淋漓的运动吧!运动打卡,焕发夏末活力8月25日9月7日期间,完成每日运动任务并打卡扎卡里亚尤文太弱了,我在切尔西会更开心切尔西中场丹尼斯扎卡里亚表示,他转会到伦敦俱乐部,希望能与教练托马斯图切尔合作。就在夏季转会窗口结束之前,切尔西设法从尤文图斯租借了扎卡里亚。丹尼斯诚实地承认,他匆匆换人,而转会一米兰看上19岁天才妖童,中场未来指挥官,先租后买开价1300欧元由于引援预算有限,意甲豪门AC米兰已经彻底改变了引援方式,目前,他们在转会市场上尽量求购一些转会费不高但发展潜力巨大的年轻新星。AC米兰的这种引援方式被球迷戏称为刮彩票,刮中了彩票学术视角下的新时代金融主题(下)点击国家金融与发展实验室关注我们程炼国家金融与发展实验室学术委员会秘书长周莉萍国家金融与发展实验室高级研究员张策中国社会科学院金融研究所综合研究部助理研究员党的十八大以来,特别是第小小大星球主题跑酷手游终极麻布仔公布小小大星球衍生手游终极麻布仔即将登陆手机平台。2015年PSVita和手机上曾经推出麻布仔快跑。这次即将推出的这款跑酷手游,似乎也是跟随之前麻布仔快跑的风格。索尼尚未正式官宣,但G转会消息巴塞罗那AC米兰曼联狼队瓦伦西亚切尔西巴塞罗那收到了对格里兹曼的报价。(来源gerardromero)皮亚尼奇可能会在接下来的几天内离开巴塞罗那。(来源relevo)阿布德即将加盟皇家巴利亚多利德。巴萨希望能从德斯特身第五人格魔法师如何偷袭屠夫?魔术师如何偷拍屠夫的教学?第五人格魔术师走屠夫可以选择硬拼,用了魔杖后蹲在原地。最安全的办法是在魔法师正在修机器或者附近有密码机的时候发现屠夫靠近,先把机器修好,然后直接用魔杖,留下一个正在假开机的分身在原山西一女子嫁给女儿同学爸爸,被指消费父女炒作,当事人回应9月初,山西太原离异女子再婚嫁给女儿同学爸爸一事引发网友关注和讨论。有网友评论其是最合适的二婚也有网友因其经常分享其丈夫女儿耳蜗宝宝(指先天性听力丧失,植入人工耳蜗治疗的孩子)的故国外网友知道儿子喜欢杜兰特后惨遭禁足,杜兰特转发其推特这是有多恨杜兰特?因为儿子的硬盘里有杜兰特的高光集锦,老爸直接把儿子禁足了!国外一位网友在推特上写道大家对凯文杜兰特的憎恨也太真实了。我叔叔因为他10岁儿子的硬盘录像机里有KD的高亚洲第一飞人柯受良,为国争光,死后却无钱安葬今年是香港回归25周年,内地和香港都举行了很多庆祝活动,你们是否还记得,25年前,在香港回归的前一个月,有人为了庆祝香港回归,驾车成功飞跃黄河壶口瀑布,他,就是柯受良,今天,我们就