精华内容
下载资源
问答
  • 在python的matplotlib库中分别可用bar、barh、plot函数来构建它们,再使用xticks与yticks(设置坐标轴刻度)、xlabel与ylabel(设置坐标轴标签)、title(标题)、legend(图例)、xlim与ylim(设置坐标轴数据范围)...

    当我们获取完数据之后,一般来说数据可视化呈现的最基础图形就是:柱状图、水平条形图、折线图等等,在python的matplotlib库中分别可用bar、barh、plot函数来构建它们,再使用xticks与yticks(设置坐标轴刻度)、xlabel与ylabel(设置坐标轴标签)、title(标题)、legend(图例)、xlim与ylim(设置坐标轴数据范围)、grid(设置网格线)等命令来装饰图形,让它更明晰与美观,但是对于数据标签(即在图形中的每一个点或条形位置上标注出相应数值),却没有直接的命令导出。我们看很多python可视化做出的柱状图等等,在柱子数量不多的条件下,没有数据标签,只有光秃秃的一个个柱子,这样就使得图形缺了些什么。事实上,在python的matplotlib中有在图形中添加文字说明的命令——text,我们就可以利用这个命令,在图中每个单位要素中添加相应文字,来构造数字标签。

    以本人专栏知乎专栏写的《大数据时代,哪些课程最受欢迎?》所爬取数据为例,经过numpy得到了不同课程类别下的平均学习人数,如图:

    5ae17ace7984

    v2-436583cccc6aaf0b95703e570b42cf45_b.png

    plt.figure(figsize=(10,6))

    #设置x轴柱子的个数

    x=np.arange(14)+1 #课程品类数量已知为14,也可以用len(ppv3.index)

    #设置y轴的数值,需将numbers列的数据先转化为数列,再转化为矩阵格式

    y=np.array(list(ppv3['numbers']))

    xticks1=list(ppv3.index) #构造不同课程类目的数列

    #画出柱状图

    plt.bar(x,y,width = 0.35,align='center',color = 'c',alpha=0.8)

    #设置x轴的刻度,将构建的xticks代入,同时由于课程类目文字较多,在一块会比较拥挤和重叠,因此设置字体和对齐方式

    plt.xticks(x,xticks1,size='small',rotation=30)

    #x、y轴标签与图形标题

    plt.xlabel('课程主题类别')

    plt.ylabel('number')

    plt.title('不同课程类别的平均学习人数')

    **#设置数字标签**

    **for a,b in zip(x,y):**

    ** plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=7)**

    #设置y轴的范围

    plt.ylim(0,3700)

    plt.show()

    最终得到的图形为:

    5ae17ace7984

    不同类别学习人数.png

    着重讲一下如何设置数字标签

    #设置数字标签

    for a,b in zip(x,y):

    plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=7)

    首先,前边设置的x、y值其实就代表了不同柱子在图形中的位置(坐标),通过for循环找到每一个x、y值的相应坐标——a、b,再使用plt.text在对应位置添文字说明来生成相应的数字标签,而for循环也保证了每一个柱子都有标签。

    其中,a, b+0.05表示在每一柱子对应x值、y值上方0.05处标注文字说明, '%.0f' % b,代表标注的文字,即每个柱子对应的y值, ha='center', va= 'bottom'代表horizontalalignment(水平对齐)、verticalalignment(垂直对齐)的方式,fontsize则是文字大小。

    条形图、折线图也是如此设置,饼图则在pie命令中有数据标签的对应参数。对于累积柱状图、双轴柱状图则需要用两个for循环,同时通过a与b的不同加减来设置数据标签位置,比如在本文另一文章[《双十一预售战下的电商风云》](https://zhuanlan.zhihu.com/p/23492721

    ) ,如图:

    5ae17ace7984

    电商平台商品评价.png

    其命令为:

    5ae17ace7984

    电商代码.png

    展开全文
  • 今天来为大家说一说在我最近做的一个项目中遇到的一个比较有意思的东西。 先说一下,这个项目的需求是要...因为在前端浏览器Height标签获取相应数据的时候采用的是取整,但是这里在显示的时候是明显不能够用整数...

    今天来为大家说一说在我最近做的一个项目中遇到的一个比较有意思的东西。

    先说一下,这个项目的需求是要在前端显示界面提供信息整合分析的图表,这里我们选择了使用柱形图。

     

    以一个镇子里面的每一个村子有多少人为例:

    首先要先确定Y轴的数据的间隔是多少,我们在这里设置的为20px;

    因为在前端浏览器Height标签获取相应数据的时候采用的是取整,但是这里在显示的时候是明显不能够用整数值的;

    假如我们设置Y轴大概每一个20px的间距就是100个人口,那么如果是99个人的话实际的柱形图的高度应为99/100*20=19.8px;

    但是呢Height只取整数值也就是19px,这样就会产生很多误差,使系统的完成度和可信度大大降低;

    当然,这里很多人会想到为什么不用百分数呢,是的当时我也想到了用百分数,但是当你真正用到的时候就会发现,使用百分数的时候Height标签也只是会取整数的部分;

    比如我们所需要的值时19.8%,那么Height只会取到19%,这样在信息量很大的时候误差会更大;

    所以,这两种方法都是不可以的,那么我就在这里为大家提供一种可行的方法:

    我们使用px和em转换的方法,1em=16px,但是我不知道是我的浏览器的原因还是其他的原因,当我使用的是这个值的时候显示的信息并不是我想要的,

    使用方法是这样的,我们还是设置人数为99人,那么在算的时候就是这样的: 99/100*20/16 这个值就是我们转换到em 的值,在页面代码中Height中将px换成em ;

    这样你通过审查界面代码你就可以发现这个时候的柱形图的高度为19.8px;我的浏览器用的是谷歌浏览器,转换的时候我发现使用16来转换的结果并不是我想要的,后来通过计算我得到的值是13.989899,所以我在转换的时候用的就是这个值。

    但在实际做项目的过程中,我们是要求这个柱形图是可以随着数据库信息的整合而变化的,这样才能更好的增加系统的完善性,下面为给大家举个例子:

    我们在这里使用的是.net语言编程

    控制器部分:

     public ActionResult showHumanOfVillage(){

      NumberOfPersonModel model=new NumberOfPersonModel();

      model.FengXiangCun=99;

      model.FengXiangCun=model.FengXiangCun/100*20/13.989899;

      return View(model);

    }

    视图部分:

    @model NumberOfPersonModel

    @{

      string ems="em";

    }

    //这里给大家个提醒,再给Height设置值的时候,在所传值的后面直接加上em,或者加空格之后再加em是不对的

    比如:<canvas class="jqplot-series-shadowCanvas" style="position: absolute; left: 90px; bottom: 20px;border-color: rgba(246, 156, 147, 0.8);height:@Model.FengXiangCunem;width:50px;"></canvas>

    或者<canvas class="jqplot-series-shadowCanvas" style="position: absolute; left: 90px; bottom: 20px;border-color: rgba(246, 156, 147, 0.8);height:@Model.FengXiangCun em;width:50px;"></canvas>

     

    所以我们采用字符串拼接的形式

    <canvas class="jqplot-series-shadowCanvas" style="position: absolute; left: 90px; bottom: 20px;border-color: rgba(246, 156, 147, 0.8);height:@Model.FengXiangCun.ToString()@ems;width:50px;"></canvas>

    这样我们就会发现这里最终height中显示的值就是为19.8px,正是我们所想要的。

    这个方法是本人在这次项目开发的过程中遇到这类问题之后通过思考和实践而做出来的可行的一种方法,希望大家在制作项目的过程中遇到此类的问题可以更快的解决。

    同时希望更多更有经验的前辈能多给提提意见,让学生能够学到更多的有用的知识为学生1年后求职增加更多的经验和实力,感激不尽!!!!!

    转载于:https://www.cnblogs.com/qtc-zyl/p/5463742.html

    展开全文
  • 我们先设置一个标签,一个打印函数,将变化的数字设为(int等)基本数据类型,然后每一次该发生变化,就调用一次打印函数(打印函数相当于重新设置标签内容) JLabel score=new JLabel(); private static int...

    我们先设置一个标签,一个打印函数,将变化的数字设为(int等)基本数据类型,然后每一次该值发生变化,就调用一次打印函数(打印函数相当于重新设置了标签内容)

    JLabel score=new JLabel();
    
    private static int scor;
    
    public void showScore() {//显示分数的函数
    	String strScore="";
    	strScore = "总分:"+" "+scor;
    	score.setText(strScore);
    }
    
    if(this.foodBeEaten()) {//截取部分代码,表明打印函数应该放的位置
    					scor +=10;
    					showScore();
    					food = new Food();
    					((SnakeBody) this.snaekBody).addBody(); //蛇身增长
    					//测试  System.out.println("蛇身的长度:"+this.snaekBody.body.size());
    					if(this.snaekBody.body.size() == 1) { //赋予地址,避免在(0,0)闪烁
    					this.snaekBody.setIndexCoordination(0, this.head.getX(), this.head.getY());//需修改,此处表示蛇每次都从同一个位置出来
    					}
    				}

    注意:之所以能够不断显示变化的分数,是因为不断再重新调用打印函数的结果,如果只调用这个函数一次,而没有将它放进一个循环体中,则不能再重复显示,思路:改变标签内容—>再让其的内容重新显示

    对此就可以形成一个能够不断显示分数变化的计分器!

    展开全文
  • 使用struts2的标签中+ognl表达式获取数据 使用方式:表达式” /> (1)获取字符串 ·向栈放字符串   ·在jsp中使用struts2标签+ognl表达式获取   显示: (2)获取对象 ·向栈中设置对象 ...

    从值栈中获取数据

    使用struts2的标签中+ognl表达式获取值栈数据

    使用方式:<s:property value=”ognl表达式” />

    (1)获取字符串

    ·向值栈放字符串

     

    ·在jsp中使用struts2标签+ognl表达式获取

     

    显示:


    (2)获取对象

    ·向值栈中设置对象

     

    ·在页面获取值

     

    显示:

     

    (3)获取list集合

    三种方式

    第一种方式:

     

    结果:

    第二种方式:使用迭代器输出,类似jstl中的foreach方法

     

    第三种方式:

    同样是使用迭代器输出,但是先把遍历到的user存到congtext中,然后context区中获取数据,因为不用在root区开辟多个空间,效率更高;但是写ognl表达式需要使用特殊符号来区分是在root中取内容还是在context中取内容

    context空间中开辟一个临时key-value空间来存储遍历到的user

     

    (4)其他操作(会用即可)

    1.使用set方法向值栈放的数据,获取的方式

    页面:

    显示:


     

    2.使用push方法向值栈放的数据,获取的方式

     

    ·使用push方式设置的值没有名称,只有设置的值,所以要取出数据要根据数组取出

    ·向值栈放数据,是把这些数据放到一个数组中,数组名称为top,栈顶为第一个元素

     



    另一个觉得版面还不错的类似的博客记录,方便日后查看:简书:在jsp页面获取值栈中的数据 点击打开链接

     


    展开全文
  • Peeskillet’s lame tutorial for working ...应该是一个标签,说“属性”.确保突出显示表格,而不是其周围的滚动窗格,否则下一步将无法正常工作>单击属性模型右侧的…按钮.将出现一个对话框.>将行设置为0,设置...
  • Peeskillet’s lame tutorial for working ...应该是一个标签,说“属性”.确保突出显示表格,而不是其周围的滚动窗格,否则下一步将无法正常工作>单击属性模型右侧的…按钮.将出现一个对话框.>将行设置为0,设置...
  • 在参数面板添加一个标签控件,控件名为lable,设置标签控件不可见,控件为“显示”。 在参数面板添加一个按钮控件,控件名为button,控件为“只显示合计数据”,并添加点击事件。 编辑点击事件,添加下面的...
  • 在参数面板添加一个标签控件,控件名为lable,设置标签控件不可见,控件为“显示”。 在参数面板添加一个按钮控件,控件名为button,控件为“只显示合计数据”,并添加点击事件。 编辑点...
  • EXCEL中堆积柱型图如何显示累计数…

    千次阅读 2017-03-16 10:57:13
    EXCEL中堆积柱型图如何显示累计数据。   1、数据表中增加累计,求出每组数据的累计; 2、做堆积柱型图,要包含累计;...4、选给折线图添加数据标签; 5、将折线图格式设置成无充填色、无线条颜色; 6、整理。
  • //设置X轴标签显示位置 xAxis.setDrawGridLines(false);//不绘制格网线 xAxis.setGranularity(1f);//设置最小间隔,防止当放大时,出现重复标签。 xAxis.setValueFormatter(xAxisFormatter); xAxis....
  • 在进行专题地图,进行地图整饰阶段,为地图绘制地图格网,格网标注为经纬度时,ArcGIS中会默认显示经纬度度分秒的。但可能在一些情况下,用户只想要显示格网的度的数值,此时,应该怎样设置? 1.在数据框属性中中...
  • //每秒钟,图表更新一次,y数据值在0-100之间的随机数 setInterval(function() { var x = (new Date()).getTime(); // 当前时间 //y = Math.random()*100; //y = this.y; //alert(point.y); //...
  • EXCEL如何在一个图上画多条曲线?以及设置X/Y轴标题? 1.记得将X轴的数据输在上方,Y轴的数据输在下方。...6.勾选添加X/Y轴坐标轴标题,图标标题,图例(也可以添加数据标签显示每一个点的数据) 7.最后就完成啦!
  • 在平时的学习或者工作中有时在展示图形的时候,X轴的标签太多了,我们就想用滑动条来去动态的显示,那我们该如何实现呢? 1、先看一下我们的实验数据: 2、点击 开发工具-->插入 --> 滚动条按钮 3...
  • bios的设置,,,,,

    2010-04-23 19:39:52
    Cache Size 缓存显示处理器的二级缓存 Integrated Devices(LegacySelect Options) 集成设备 Sound 声音设置:使用该选项可启用或禁用音频控制器 Network Interface Controller 网络接口控制器:启用或禁用...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 185
精华内容 74
关键字:

如何设置数据标签显示值