python怎么定义正方形函数_python – Matplotlib自定义图例以显示正方形而不是矩形...

这是我尝试将条形图的图例从矩形更改为方形:

import matplotlib.patches as patches

rect1 = patches.Rectangle((0,0),1,1,facecolor='#FF605E')

rect2 = patches.Rectangle((0,0),1,1,facecolor='#64B2DF')

plt.legend((rect1, rect2), ('2016', '2015'))

但是当我绘制这个时,我仍然会看到矩形而不是正方形:

有关如何做到这一点的任何建议?

我尝试了@ImportanceOfBeingErnest和@furas提供的两种解决方案,结果如下:

@ ImportanceOfBeingErnest的解决方案是最容易做到的:

plt.rcParams['legend.handlelength'] = 1

plt.rcParams['legend.handleheight'] = 1.125

结果如下:

我的最终代码如下所示:

plt.legend((df.columns[1], df.columns[0]), handlelength=1, handleheight=1) # the df.columns = the legend text

@ furas的解决方案产生了这个,我不知道为什么文本远离矩形,但我确信差距可以以某种方式改变:

最佳答案:

Matplotlib提供rcParams

legend.handlelength : 2. # the length of the legend lines in fraction of fontsize

legend.handleheight : 0.7 # the height of the legend handle in fraction of fontsize

您可以在通话中将其设置为plt.legend()

plt.legend(handlelength = 1,handleheight = 1)

或者在脚本开头使用rcParams

import matplotlib

matplotlib.rcParams['legend.handlelength'] = 1

matplotlib.rcParams['legend.handleheight'] = 1

不幸的是,提供相等的句柄长度= 1,handleheight = 1将不会提供完美的矩形.似乎handlelength = 1,handleheight = 1.125将完成这项工作,但这可能取决于所使用的字体.

另一种方法是,如果要使用代理艺术家,可以使用plot / scatter方法中的方形标记.

bar1 = plt.plot([], marker="s", markersize=15, linestyle="", label="2015")

并将其提供给图例,图例(手柄= [bar1]).使用此方法需要设置matplotlib.rcParams [‘legend.numpoints’] = 1,否则图例中将出现两个标记.

以下是两种方法的完整示例

import matplotlib.pyplot as plt

plt.rcParams['legend.handlelength'] = 1

plt.rcParams['legend.handleheight'] = 1.125

plt.rcParams['legend.numpoints'] = 1

fig, ax = plt.subplots(ncols=2, figsize=(5,2.5))

# Method 1: Set the handlesizes already in the rcParams

ax[0].set_title("Setting handlesize")

ax[0].bar([0,2], [6,3], width=0.7, color="#a30e73", label="2015", align="center")

ax[0].bar([1,3], [3,2], width=0.7, color="#0943a8", label="2016", align="center" )

ax[0].legend()

# Method 2: use proxy markers. (Needs legend.numpoints to be 1)

ax[1].set_title("Proxy markers")

ax[1].bar([0,2], [6,3], width=0.7, color="#a30e73", align="center" )

ax[1].bar([1,3], [3,2], width=0.7, color="#0943a8", align="center" )

b1, =ax[1].plot([], marker="s", markersize=15, linestyle="", color="#a30e73", label="2015")

b2, =ax[1].plot([], marker="s", markersize=15, linestyle="", color="#0943a8", label="2016")

ax[1].legend(handles=[b1, b2])

[a.set_xticks([0,1,2,3]) for a in ax]

plt.show()

生产

标签:python,matplotlib

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505211.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 排列3_java中的三大排序算法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/pqwGreenhand/article/details/53581577一、冒泡排序已知一组无序数据a[1]、a[2]、……a[n]&#xff…

python 批量查询网页导出结果_python批量查询网页的HTTP状态码

最近业余时间在改版一个网站,改版之前频繁调整了一些栏目的属性,包括栏目的层级,这种最怕就是调整了栏目的从属关系,导致了栏目的URL地址改变,一旦改版就导致整个栏目及其下面的文章页地址变更,成为死链。而…

java 文件夹存在文件_Java判断是否存在文件和文件夹

获取项目绝对路径:this.getClass().getClassLoader().getResource(".").getPath()1、判断文件是否存在,不存在创建文件File filenew File("C:\\Users\\QPING\\Desktop\\JavaScript\\2.htm");if(!file.exists()){try {file.createNew…

镜像浏览器_害怕win10镜像有第三方软件,直接到微软官网下载,原汁原味

很多时候我们在网上下载的一些win10镜像ISO文件都包含有一些第三方的软件,虽然这都是网站为了盈利而不得不做的,但是辛苦下载安装好的windows系统,如果有乱七八糟的软件心里真的会非常不舒服,甚至以前电脑城的win7所谓正版光碟都是…

post大小限制_作为一个程序员,面试中常问的get和post的区别,你真的知道吗

作为一个程序员无论是搞前端的还是搞后端的,只要问起来GET和POST的区别,都能说出来个一二三四来。你可能自己写过无数个GET和POST请求,或者也看过很多权威网站总结出来的区别,你非常清楚的知道什么时候用GET什么时候用POST.当你在…

java static 修饰变量吗_Java面试 - static 修饰的变量和方法有哪些特点?

1、static修饰的变量和方法,在类加载时即被初始化,可直接通过类名.变量名和类型.方法名进行调用。2、static修饰的变量,在类加载时会被分配到数据区的方法区。类的实例可共享方法区中的变量。如果static修饰的变量发生改变,那么所…

安卓手机如何防盗_如何设置安卓手机各版本USB调试模式

关注我们,获得更多资讯在这篇教学中,小蛙会详细向大家讲解USB调试模式的开启及关闭方法,以及其用途。在这个过程中,由于Android 机型众多,所以无办法列举太多。但请相信小蛙,开启USB 调试的操作方法基本上是…

python类的私有属性_Python类的私有属性

在 C 和 Java 中,属性(成员)有访问控制,如 public 表示任意代码可以访问该属性,private 表示仅当前类的代码才可以访问该属性。Python 中没有这个访问控制符,但是可以在属性前面加上 __ 两个下划线来表示该属性不能在类外部访问。…

java boolean if_Java if(boolean)和if(boolean=true)区别解析

这篇文章主要介绍了Java if(boolean)和if(booleantrue)区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下我们都知道if(){}条件的括号中放的是布尔值,但是现在有两种情况,都是放布尔…

iphone同步助手_iPhone 与安卓手机之间如何进行资料迁移

​上一期我们介绍了 iPhone 之间和安卓手机之间如何备份和进行资料迁移,很多朋友都留言说想知道 iPhone 与安卓手机之间如何进行资料迁移,看来双十一大家都剁手换了手机啊,嘴上说着不要,到头来还是管不住自己的手。同操作系统的手…

当前记录集不支持更新_不断中招的你还放心升级win10吗?wi10近期更新问题及解决办法...

.专于心 精于形.Win10用户升级5月更新后屏幕出现蓝绿伪影:或跟调节色温软件有关随着五月更新升级范围的扩大,一些问题也是加速展现在微软面前。现在,有不少Windows 10用户反馈称,自己升级至五月更新后,屏幕出现了蓝绿伪…

k8s管理java项目_Kubernetes集群部署项目-部署Java项目(推送镜像

Kubernetes(简称k8s)是谷歌开源的一套容器化集群管理系统,当下已被众多大厂及中小企业采用,容器化技术是目前的大势所趋。本套教程k8s版本升级为最新版1.18.0,内容由浅入深,且更加深化细节,对于Java开发者大大提高友好…

易班自动答题脚本_如何使用python进行自动网上考试

前言文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者: HIS HackerPS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun背景说明在github上发现一…

两个子集pom互相调用_声明式服务调用组件Feign

什么是Feign? Feign是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端。Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。什么是OpenFeign?OpenFeign是SpringCloud在Feign的基础上支持了SpringMVC的…

安卓手机主题软件_安卓手机安装不了软件原因和方法

安卓手机不能安装软件其实有很多的原因,排除可以避免的原因(google授权),其他的硬件设施的支持,也可能出现软件不能安装的现象。有的是可以解决的,但有的是强制性原因,那就没有办法了。下面就来分析下软件不能安装的几…

java jbutton 不显示_java – JButton中的图像未显示

有人可以看看这段代码并告诉我我做错了什么?根本没有显示图像.它们在同一个包装中.谢谢public class MWindow31Pic extends JFrame implements ActionListener{private JPanel contPane (JPanel) this.getContentPane();private JButton button new JButton(new I…

python类的mod_apache+mod_python

一.安装apache(httpd-2.2.25.tar.gz )到 http://httpd.apache.org 下载最新的apache源码,解压后进入目录:我想把apache安装到/usr/lcoal/apache下,所以执行如下命令执行:./configure --prefix/usr/lcoal/apache --enable-track-va…

excel插入页码_Excel里毫不起眼的页眉页脚,居然有这3种高能用法!

点击上方蓝字关注星标★不迷路本文作者:小敏本文编辑:小叮一说到页眉页脚,你脑海中出现的,是不是这样一个画面?规规矩矩的页眉页脚,比如,公司 logo 或者文件名称放在页眉位置,底部加…

java nutz_jnutz: 基于nutz的java+js混合开发项目

nutz-jseversion 0.0.2jdk8 152 nutz es html如不使用let const等变量则jdk8 40即可如使用es6的部分请更换jdk9 181将 config/ioc/jjs.js 中的es6注释 添加到[]内项目使用说明将jse.properties文件放置在你的web根目录复制lib中的jar到 WEB-INFO/lib启动项目就ok了代码编写说明…

前端怎么获取cookie的值_京东购物小程序cookie方案实践(附Demo)

一、前言早期为了解决“会话保持”的需求,社区中出现了「cookie 方案」并最终成为 W3C 标准:当某个网站登录成功后,客户端(浏览器)收到一个 cookie 标识(文本)并保存下来,在后续请求中会自动带上这个字段,由此 Web 后台…