这里有一个解决方案,它使用ax.annotate在每个条内绘制箭头。由于OP不太清楚箭头应该是什么样子,所以我把每个条分成矩形(在代码中我称它们为squares,但如果你确定了绘图的纵横比,它们就只是正方形),并为每个矩形绘制了一个中心箭头,其方向由用户提供的角度给出(这里是一个称为wind_direction)。在

在代码中,我将Axes的纵横比设置为x-和y-极限的纵横比,这使得Axes呈正方形,因此可以轻松绘制长度相同的箭头,而不受其方向的影响。如果不需要,可以注释掉相应的行。如果箭头的长度必须相同而不受限制,则必须计算图形的纵横比,例如请参见here如何进行此操作。在

我还用度数标注了每个条上的风向,以便检查箭头是否与给定的风向一致。在from matplotlib import pyplot as plt

import numpy as np

fig,ax = plt.subplots()

x = np.arange(12)

wind_strength = np.random.random(12)

wind_direction = np.linspace(0,2*np.pi,12, endpoint = False)

colors = ['green', 'yellow', 'blue', 'pink', 'orange']

bar_cols = [colors[i%len(colors)] for i,s in enumerate(wind_strength)]

bars = ax.bar(x,wind_strength, color=bar_cols)

##computing the aspect ratio of the plot ranges:

xlim = ax.get_xlim()

ylim = ax.get_ylim()

aspect = (xlim[1]-xlim[0])/(ylim[1]-ylim[0])

##comment out this line if you don't care about the arrows being the

##same length

ax.set_aspect(aspect)

##dividing each bar into 'squares' and plotting an arrow into each square

##with orientation given by wind direction

for bar,angle in zip(bars,wind_direction):

(x1,y1),(x2,y2) = bar.get_bbox().get_points()

w = x2-x1

h = w/aspect

x_mid = (x1+x2)/2

dx = np.sin(angle)*w

dy = np.cos(angle)*h

##the top and bottom of the current square:

y_bottom = y1

y_top = y_bottom+h

##draw at least one arrow (for very small bars)

first = True

while y_top < y2 or first:

y_mid = (y_top+y_bottom)/2

ax.annotate(

'',xytext=(x_mid-dx/2,y_mid-dy/2),

xy=(x_mid+dx/2,y_mid+dy/2),

arrowprops=dict(arrowstyle="->"),

)

##next square

y_bottom = y_top

y_top += h

##first arrow drawn:

first = False

##annotating the wind direction:

ax.text(x_mid, y2+0.05, '{}'.format(int(180*angle/np.pi)), ha = 'center')

plt.show()

最终结果如下:

希望这有帮助。在

python 条形图填充疏密_如何用箭头填充pyplot条形图的条形图?相关推荐

  1. java 填充字符串_如何用Java填充字符串?

    素胚勾勒不出你 从Java 1.5开始,String.format()可用于左/右衬垫给定的字符串.public static String padRight(String s, int n) { r ...

  2. java我的世界填充方块_我的世界填充指令 填充TNT的指令是什么

    我的世界填充指令 填充TNT的指令是什么.在我的世界里面有一些指令是具有填充效果的,那下面游戏园小编就给大家将我的世界填充指令介绍一下吧!还有TNT填充指令又是什么都会一一介绍的,那感兴趣的玩家不妨进 ...

  3. python 条形图填充疏密_教你利用Python玩转histogram直方图的五种方法

    直方图 直方图是一个可以快速展示数据概率分布的工具,直观易于理解,并深受数据爱好者的喜爱.大家平时可能见到最多就是 matplotlib,seaborn 等高级封装的库包,类似以下这样的绘图. 本篇博 ...

  4. python 条形图填充疏密_可视化库-Matplotlib-条形图(第四天)

    1.画两个条形图,bar和barh, 同时axes[0].axhline画一条横线,axes[1].axvline画一条竖线 importnumpy as npimportmatplotlib.pyp ...

  5. python 条形图填充疏密_如何在python中绘制密度图?

    我有一个.txt文件,其中包含2D地图中规则间隔点的x,y值,第三个坐标是该点的密度.4.882812500000000E-004 4.882812500000000E-004 0.9072267 1 ...

  6. python 条形图填充疏密_python matplotlib模块: fill_between(填充曲线)

    填充曲线可以在前面plot绘制的曲线的基础上填充这些不同曲线之间的差异, 可以更直观的看出差异. 数据集 源码: # coding=utf-8 import pandas as pd from mat ...

  7. 用python画六边形并填充颜色_如何用Python,画一个正多边形,长度和颜色还是任意的!...

    Python画基本形状,要用到自带的turtle库,这是个简单绘图的入门小工具. 任务设定如上,下面来一点点拆解它. 从键盘获取用户输入的边数. 画笔形状由原来的三角形,改为海龟形状. 长度随机产生, ...

  8. python三个箭头怎么打出来_如何用箭头键在Python 3中移动海龟

    我有解决办法给你.代码并不理想,但它可以工作,您可以对其进行处理.你必须意识到,乌龟的位置不好,你必须调整它.这就是为什么我在设置方法我的乌龟抬头. 现在,您必须记住,right(deg)和left( ...

  9. python贪吃蛇控制台_如何用Python写一个贪吃蛇AI

    前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了. 问题的关键在于,图片中的贪吃蛇真的很贪吃XD, ...

最新文章

  1. php打印warning日志引发的core追查
  2. C++ 面向对象(三)异常 :异常概念、异常的匹配规则、异常安全、异常体系
  3. LeetCode 659. 分割数组为连续子序列(哈希)
  4. WordPress更改“固定链接”后 页面404原因及解决方法(Nginx版)
  5. 数据结构c java_Java - 数据结构
  6. nginx重写与重定向区别_nginx学习十一 rewrite url重写以及重定向
  7. DNN永日新闻模块(YongRi)免费1.00.09版本下载
  8. 如何启动一个Vue3.x项目
  9. QQ聊天记录恢复深度研究
  10. 记第一次FPV模式飞行穿越机的感受
  11. idea 安装uml 画图工具
  12. mtk 手机低电无法关机,电池容量一直显示1%
  13. 来自百度的移动应用框架Clouda:快速开发,一键部署BAE
  14. LigerUI的简单使用示例
  15. 11083 旅游背包(优先做)
  16. 学好编程需要英语很好吗
  17. 约瑟夫环问题(数学递推法)
  18. RabbitMQ之web界面解析
  19. keytool生成证书的方法
  20. VMware12卸载之后安装其他版本导致回滚操作的解决方法之一

热门文章

  1. android 屏蔽实体按键,Android中屏蔽返回键,home键以及其他实体按键
  2. [ZUCC 计网]BB-quiz-数据链路层测试-2020
  3. 最大值最小值算法(象棋博弈)
  4. ChatGPT翻译怎么样-ChatGPT批量翻译工具软件
  5. 说说IO(七)- RAID
  6. 做一个简单网页(做一个简单网页多少钱)
  7. 像差分析(更新。。。)
  8. 基于阿里云生态构建网聚宝业务监控系统
  9. 申报市级瞪羚企业应具备的基本条件
  10. 主题 04:如何设计一个复杂的系统(下)