python matplotlib实现条形图的填充效果

本文实例为大家分享了python matplotlib实现条形图填充效果的具体代码,供大家参考,具体内容如下

写专利用的python里面的matplotlib画的条形图 ,最开始用的三种颜色来区分,如下图:

然而被告知不行,只能用黑白的,其他颜色不能用,于是想到用灰度,如下图:

然而又被告知,不行,不能用灰度,只能用条形框的填充格式进行区分,接近崩溃,百度了半天也没看到相关的帖子,后来终于找到了,先来看一下效果,源码贴在最后面。效果如下图:

源码如下:

import matplotlib.pyplot as plt 
import numpy as np
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei']
Y2016 = [83.2, 85, 83.9] 
Y2017 = [80.4, 74.6, 86.5]
Y2018 = [85.8, 87.2, 89.1]
labels = ['准确性', '敏感性', '特异性'] 
bar_width = 0.25 
 
# 绘图
plt.figure(figsize=(10,10))
plt.bar(np.arange(3), Y2016, label='TSVM', color='white', alpha=1, width=bar_width,edgecolor="k",hatch='/') 
plt.bar(np.arange(3) + bar_width, Y2017, label=u'协同训练半监督', color='white', alpha=1, edgecolor="k",width=bar_width,hatch="***")
plt.bar(np.arange(3) + 2*bar_width, Y2018, label=u'结合TSVM和协同训练半监督', color='white', alpha=1, edgecolor="k",width=bar_width,hatch="xxx")
 
# 添加刻度标签 
plt.xticks(np.arange(3) + bar_width, labels)
plt.tick_params(labelsize=20)
# 设置Y轴的刻度范围 
plt.ylim([0, 100]) 
 
# 为每个条形图添加数值标签 
for x2016, y2016 in enumerate(Y2016): 
    plt.text(x2016, y2016 + 2, '%s' % y2016, ha='center',fontsize=20) 
 
for x2017, y2017 in enumerate(Y2017): 
    plt.text(x2017 + bar_width, y2017 + 2, '%s' % y2017, ha='center',fontsize=20)

for x2018, y2018 in enumerate(Y2018): 
    plt.text(x2018 + 2*bar_width, y2018 + 2, '%s' % y2018, ha='center',fontsize=20)
# 显示图例
plt.legend(bbox_to_anchor=(0.5,1), loc=3, borderaxespad=0,fontsize=17)
plt.savefig('foo.png') 
# 显示图形 
plt.show() 

其中,hatch这个参数的值就是改变填充效果的,具体的效果有:‘*oO/|±.’,填充密度根据你引用的符号数量变化,如hatch=‘/’肯定比hatch=’///'要密集对吧。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python画条形图实例

    本文实例为大家分享了python画条形图的具体代码,供大家参考,具体内容如下 在做毕设的过程中有些数据用表格来展现,会很难看出数据之间的差别,凸显不出数据的特点,所以想制作一个条形图,这里特地记录下,已备以后用到. import numpy as np import matplotlib.pyplot as plt import matplotlib #指定默认字体 matplotlib.rcParams['font.sans-serif'] = ['FangSong'] matplotlib.

  • python数据可视化之条形图画法

    什么是条形图? 条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据多少的图形.条形图可以横置或纵置,纵置时也称为柱形图(column chart).此外,条形图有简单条形图.复式条形图等形式. 简单来说,条形图的宽度一般是相同的,条形的高度或长短表示数据的多少,这也就是条形图和直方图的本质区别. 第一种画法 import numpy as np from pandas import DataFrame # 由于我们的x轴上刻度值是中文 需要使用这个包 进行中文的显示 from

  • python绘制横向水平柱状条形图

    python绘制横向水平柱状条形图Bar,供大家参考,具体内容如下 import matplotlib import random import matplotlib.pyplot as plt   # 中文乱码和坐标轴负号处理. matplotlib.rc('font', family='SimHei', weight='bold') plt.rcParams['axes.unicode_minus'] = False   #城市数据. city_name = ['北京', '上海', '广州

  • python绘制条形图方法代码详解

    1.首先要绘制一个简单的条形图 import numpy as np import matplotlib.pyplot as plt from matplotlib import mlab from matplotlib import rcParams fig1 = plt.figure(2) rects =plt.bar(left = (0.2,1),height = (1,0.5),width = 0.2,align="center",yerr=0.000001) plt.titl

  • python绘制横竖条形图的方法

    条形图是用宽度相同的条形的高度或长短来表示数据多少的图形.用来绘制离散的数据,能够一眼看出各个数据的大小,比较数据之间的差异. 绘制一个简单的条形图与折线图的绘制方法也是大体一致,只需要把拟合方式plt.plot()修改为plt.bar()即可.例如绘制2017年内地电影票房前20的电影和电影票房数据,如何对数据进行可视化分析呢?无疑是进行条形图分析. 老规矩,上代码: # coding =utf-8 from matplotlib import pyplot as plt from matpl

  • python+matplotlib绘制3D条形图实例代码

    本文分享的实例主要实现的是Python+matplotlib绘制一个有阴影和没有阴影的3D条形图,具体如下. 首先看看演示效果: 完整代码如下: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # setup the figure and axes fig = plt.figure(figsize=(8, 3)) ax1 = fig.add_subplot(121

  • python3使用matplotlib绘制条形图

    本文实例为大家分享了python3使用matplotlib绘制条形图的具体代码,供大家参考,具体内容如下 绘制竖状条形图 代码 from matplotlib import pyplot as plt from matplotlib import font_manager my_font = font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic/ukai.ttc") a = ["战狼2"

  • python绘制折线图和条形图的方法

    本文实例为大家分享了python绘制折线图和条形图的具体代码,供大家参考,具体内容如下 最近开始写小论文啦,中间不免要作各种各样的图,学习后自己作了个小笔记,供小伙伴一起学习哦. 折线图 import matplotlib.pyplot as plt #x轴取值不一样时 # x1=[0,0.1,0.3,0.5,0.7,0.8,0.9] # y1=[0.7150,0.7147,0.7088,0.7029,0.6996,0.6942,0.5599] # x2=[0,0.1,0.2,0.5,0.6,0

  • python 画条形图(柱状图)实例

    条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的变量数值呈一定比例. 1. 竖放条形图 画条形图要用到 pyplot 中的 bar 函数,该函数的基本语法为: bar(x, height, [width], **kwargs) x 数组,每个条形的横坐标 height 个数或一个数组,条形的高度 [width] 可选参数,一个数或一个数组,条形的宽度,默认为 0.8 **kwargs 不定长的关键字参数,用字典形式设置条形图的其他属性 *

  • python多次绘制条形图的方法

    本文实例为大家分享了python绘制直方图的具体代码,供大家参考,具体内容如下 运行结果如下 代码如下 from matplotlib import pyplot as plt if __name__ == "__main__":     a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5",          "摔跤吧!爸爸",&qu

随机推荐