这里有一个解决方案,它使用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. linux创建sftp用户并指定访问目录,linux – 创建SFTP用户只能访问一个目录.
  2. c++函数内部可以返回函数内部定义的指针 但是不能返回函数内部定义的数组...
  3. 设计有setAll功能的哈希表
  4. 别拿BI不当产品(上)进击的数据产品
  5. c语言编程中怎么打汉字,c语言编程中,怎么打汉字啊??我是新手啊~~
  6. 如何创建MFC模式对话框与非模式对话框
  7. hibernate 映射四多对一双向映射
  8. DB2 常用操作命令集合
  9. java uml eclipse_eclipse uml 工具
  10. itext生成pdf paragraph 自动换行_reportlab高级制作多格式PDF和python的class和装饰器复习
  11. Photoshop中的抠图工具
  12. 从前端到全栈-基础能力-js-异步编程
  13. 云服务器显示异地登录,云服务器异地登录异常
  14. 直播平台开发,直播各个分类单例设计展示
  15. 2019年宁波顶岗实习
  16. vm镜像 黑群晖_VMWare虚拟机安装黑群晖 (DSM6.2.1)
  17. 微信气泡主题设置_微信气泡主题使用教程
  18. android开发自定义键盘,Android 总结:自定义键盘实现原理和三种实例详解
  19. html怎么转换小数点,在HTML5数字input(客户端)中强制小数点而不是逗号
  20. YTU.3241: 奇怪的比赛

热门文章

  1. SQL取日期为当前月份的第几周思路
  2. 致那些徘徊在测试界的屌丝
  3. K近邻模型、KNN算法1-构建预测模型
  4. PyQt4设计UI界面并添加简单功能【python+pyqt4+opencv】
  5. python excel数据分析画直方图 饼状图_Excel数据可视化应用(直方图、折线图、饼状图)...
  6. CSDN官方markdown教程
  7. vue框架 做后台管理系统的总结(WZ)
  8. Extjs 百度地图扩展
  9. IDEA编译器Debug方法启动:method breakpoints may dramatically slow down debugging
  10. Flink中的CEP(一)