bar

用Python中的pyecharts库做数据可视化

眉间皱痕 提交于 2020-03-21 22:26:29
3 月,跳不动了?>>> # 导入pandas包 import pandas as pd # 从pyecharts下的charts 导入Bar和Timeline功能 from pyecharts.charts import Bar,Timeline # 加载Excel表格的数据 df = pd.read_excel(r"D:\Python\Python可视化数据源.xlsx",sheet_name = "采购小组业绩") # 打印输出数据源 df # 构建一个变量bar,并实例化Bar() bar = Bar() # 设置横轴标签 bar.add_xaxis(df["采购小组"].tolist()) # 设置纵轴图例与数据 bar.add_yaxis(df.columns[1],df["销售金额"].tolist()) # 可视化 bar.render_notebook() # 构建一个变量bar,并实例化Bar() bar = Bar() # 设置横轴标签 bar.add_xaxis(df["采购小组"].tolist()) # 设置纵轴图例与数据 bar.add_yaxis(df.columns[1],df["销售金额"].tolist()) bar.add_yaxis(df.columns[2],df["销售数量"].tolist()) # 可视化 bar.render

2020Python作业12——函数对象和闭包函数(一)

青春壹個敷衍的年華 提交于 2020-03-20 23:26:41
@2020.3.20 1、函数对象优化多分支if的代码练熟 def foo(): print('foo') def bar(): print('bar') dic={ 'foo':foo, 'bar':bar, } while True: choice=input('>>: ').strip() if choice in dic: dic[choice]() 2、编写计数器功能,要求调用一次在原有的基础上加一 温馨提示: I:需要用到的知识点:闭包函数+nonlocal II:核心功能如下: def counter(): x+=1 return x 要求最终效果类似 print(couter()) # 1 print(couter()) # 2 print(couter()) # 3 print(couter()) # 4 print(couter()) # 5 def f1(): x=0 def counter(): nonlocal x x+=1 return x return counter counter=f1() print(counter()) print(counter()) print(counter()) print(counter()) print(counter()) 来源: https://www.cnblogs.com/bigorangecc/p

菜单 (PS:摘自MSDN)

帅比萌擦擦* 提交于 2020-03-20 07:45:11
编辑器加载中...A menu is a list of commands or options available to users in the current context. Drop-down menus are menus displayed on demand on mouse click or hover. They are normally hidden from view and therefore are an efficient means of conserving screen space. A submenu or cascading menu is a secondary menu displayed on demand from within a menu. They are indicated by an arrow at the end of the submenu label. A menu item is an individual command or option within a menu. Menus are often displayed from a menu bar, which is a list of labeled menu categories typically located near the top of a

移动端两端对齐 + 图片宽度自适应

两盒软妹~` 提交于 2020-03-17 09:41:35
自适应四宫格 有这样一张设计稿,左右两边白色间距为4px,中间间距为10px,每一行的两张图是等宽的(即平分去掉间距后的宽度) 有一种方法是和设计师商量,把所有的具体尺寸改为百分比尺寸。。这个布局不太好写的主要原因是,在宽度上,百分比(50%)与实际尺寸(4px 10px)混杂,所以做到宽度自适应的话会有困难。 下面是正经的一种写法: 图片单元float,宽度设置为50%,奇数单元设置margin-right为10px, 偶数单元设置margin-right为-10px。父元素设置左padding为4px,右padding为14px,父元素的padding值正好是所有间距的总和,所以它实际宽度的50%是正好符合需求的图片单元宽度。偶数单元的负margin(-10px)和父元素右padding(14px)会中和成4px的右边距(实际上是因为元素负margin会使其右边的元素向左移动并被其覆盖) 运营的同学在实际操作中,做的图可能不会很标准,所以我们需要做一些简单地容错,即是图片垂直居中在图片单元内,图片单元设置padding-top为一个百分比,这个百分比为设计稿中图片的宽高比。这样即使图片有些误差也不会影响总体的排版布局,垂直居中的原理是 top 百分比的基数是父元素 translate百分比的基数是元素本身。 实际代码如下 <dl class="four-item-list">

原型链

好久不见. 提交于 2020-03-11 16:27:29
function Foo() { this.value = 42;}Foo.prototype = { method: function() {}};function Bar() {}// 设置Bar的prototype属性为Foo的实例对象Bar.prototype = new Foo();Bar.prototype.foo = 'Hello World';// 修正Bar.prototype.constructor为Bar本身Bar.prototype.constructor = Bar;var test = new Bar() // 创建Bar的一个新实例// 原型链test [Bar的实例] Bar.prototype [Foo的实例] { foo: 'Hello World' } Foo.prototype {method: ...}; Object.prototype {toString: ... /* etc. */};  上面的例子中,test 对象从 Bar.prototype 和 Foo.prototype 继承下来;因此,它能访问 Foo 的原型方法 method。同时,它也能够访问那个定义在原型上的 Foo 实例属性 value。需要注意的是 new Bar() 不会创造出一个新的 Foo 实例,而是重复使用它原型上的那个实例;因此,所有的 Bar

Vant Weapp小程序蹲坑之使用submit-bar组件

心不动则不痛 提交于 2020-03-09 20:37:12
本文介绍在Vant Weapp小程序开发中使用submit-bar组件时需要注意的部分问题。坑来坑去,先上示例代码吧,由简单到复杂顺序。 main.js代码 main.json代码 index.vue代码 <template> <view> <van-panel title="基础用法"> <van-submit-bar :price="3050" button-text="提交订单" @submit="onClickButton" custom-class="van-submit-bar" safe-area-inset-bottom="false" /> </van-panel> <van-panel title="禁用状态"> <van-submit-bar disabled :price="3050" button-text="提交订单" tip="您的收货地址不支持同城送, 我们已为您推荐快递" @submit="onClickButton" custom-class="van-submit-bar" safe-area-inset-bottom="false" /> </van-panel> <van-panel title="加载状态"> <van-submit-bar loading :price="3050" button-text="提交订单" @submit=

装饰器之高阶函数

僤鯓⒐⒋嵵緔 提交于 2020-03-08 05:14:12
高阶函数概念引入:满足下面两个条件之一便可以称为高阶函数 1: 把一个函数的函数名当作实参传给另外一个函数(在不修改被装饰函数源码的基础上,为其增加功能)。 2 :返回值中包含函数名(不修改被装饰函数的调用方式)。 下面是一段简单的高阶函数的代码使用条件 1: # Author:Ju BO ''' def bar(): print("in the bar") def test1(func): print(func) #----相当于打印bar这个函数在内存中的门牌号即内存地址 func()#----相当于bar(),调用bar这个函数 test1(bar)#----将bar函数名当作实参传给test1函数,test1函数用形参func来接收它。 ''' 下面是一段在第一段代码的基础上新增了一些功能的高阶函数,从中也慢慢显示出了装饰器的影子。 #----改进------------------ #这段代码的功能为统计bar这个函数的运行时间 import time #---导入库 def bar(): time.sleep(3) #---等3秒 print("in the bar") def test1(func): start_time = time.time() #----截取开始时间 func() #---相当于bar(),运行bar这个函数 stop_time = time

装饰器

China☆狼群 提交于 2020-03-08 05:13:23
装饰器:本质是函数,作用是为其他函数添加附加功能 原则: 1.不改变被装饰函数的源代码 2.不改变被装饰函数的调用方式 实现装饰器需要先实现那些功能呢? 1. 函数就是 “变量”,将函数体赋予函数名,就可以在内存中存在了 # def dec(): # print('this is dec') # bar() # def bar(): # print('this is bar') # dec() def bar(): print( 'this is bar' ) def dec(): print( 'this is dec' ) bar() dec() 上图表示: 两个函数体都赋予了函数名,只要 dec() 调用,就都可以实现函数体,表明了函数是需要被赋予“变量”才可以实现的 2.高阶函数 a.把一个函数名当实参传递给另一个函数 b.返回值中包含函数名(不修改函数的调用方式) import time def bar(): time.sleep(3) print( 'this is bar' ) def test(func): start_time=time.time() func() stop_time=time.time() print( 'this is difference time is %s' %(stop_time-start_time)) test(bar)

This Activity already has an action bar supplied b

[亡魂溺海] 提交于 2020-03-07 20:33:39
问题描述:继承自AppCompatActivity,使用Toolbar替代ActionBar的时候,出现错误 错误信息: 2.Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 问题原因描述:由于Activity已存在ActionBar,所以使用Toolbar进行替换时出错 解决思路:想办法去掉ActionBar 解决方案 1.使用Theme去掉ActionBar。使用Theme.AppCompat.Light.NoActionBar或者是Theme.AppCompat.NoActionBar主题,即可去掉ActionBar,即可解决此问题。 代码如下 <resources> <style name = "AppTheme" parent= "AppTheme.Base" > </style> <style name = "AppTheme.Base" parent= "Theme

...运算符

笑着哭i 提交于 2020-03-07 07:02:47
对象拷贝 let bar = { a : 1 , b : 2 } ; let baz = Object . assign ( { } , bar ) ; // { a: 1, b: 2 } baz . c = 3 console . log ( bar ) console . log ( baz ) //https://www.jianshu.com/p/c5aa1eee8dfd 运行结果 …枚举拷贝(因为是拷贝关系,所以不会存在原型修改) let bar = { a : 1 , b : 2 } ; let baz = { ... bar } ; // { a: 1, b: 2 } 覆盖关系 let bar = { a : 1 , b : 2 } ; let baz = { ... bar , ... { a : 2 , b : 4 } } ; // {a: 2, b: 4} 数组扩展运算符(数组我们一班通过拷贝普通赋值时地址指向同一个地方不可取) …作为参数 function add ( x , y ) { return x + y ; } const numbers = [ 4 , 38 ] ; add ( ... numbers ) // 42 数组赋值 let arr1 = [ 1 , 2 , 3 ] let arr2 = [ ... arr1 ] …运算符的结构赋值