python

转:

问题1 如下下载离线安装包

pip download --only-binary=:all: --python-version 37 -d D:offline_packages12 pyechats

 

总结:

下载这个包目的是因为某些实验环境根本连不上网

如果可以下载到本地,那么至少可以迁移这些包到本地

这样本地可以重新搭建环境

问题2 如何读取指定行和指定列的值

# -*- coding: utf-8 -*-

"""

Spyder Editor

This is a temporary script file.

"""

# coding:utf-8

#导入读取excel的库

#import xlrd

#导入需要读取excel表格的路径

#data = xlrd.open_workbook(r'c:\users\user\desktop\20201119.xlsx')

import numpy as np

import xlrd

data = xlrd.open_workbook(r'c:\users\user\desktop\20201119.xlsx')

table = data.sheets()[0]

print(table)

nrows = table.nrows #行数

#ncols = table.ncols #列数

##跳步函数

c1=range(0,nrows,1)

print(c1)

  

start=12 #开始的行

end=16 #结束的行

  

rows=end-start

  

#  列表数组存行数组数据

list_values=[]

##存放表名

for x in range(start,end):

  values=[]

  row =table.row_values(x)

  ##value 存放列数组

  for i in range(1,4):

    # print(value)

    values.append(row[i])

  list_values.append(values)

# print(list_values)

datamatrix=np.array(list_values)

print(datamatrix)

 总结:

 ##目的是为了将excel 数据读到程序库

###读出来后,就可以显示对应的数据处理方式。

###一般对数据处理是为了显示 这项数据 在一个周期内的波动

###x 轴对应日期。Y轴对应相关的数值

问题3:小数点位的纵坐标如何显示

感谢书生_Scholar

http://cncc.bingj.com/cache.aspx?q=from+pyecharts.charts++import+Bar&d=5024940062146568&mkt=zh-CN&setlang=zh-CN&w=LKuec-wxGD_tFAPVrsp3yB5JixgU6ggz

感谢sunhailin-Leo

http://cncc.bingj.com/cache.aspx?q=+import+JsCode&d=4977016816470297&mkt=zh-CN&setlang=zh-CN&w=wYcUtf8BXyPXSVtX8SGQ_rynidjcyIIp

感谢Shaw_tingshu

https://blog.csdn.net/qq_41595507/article/details/102947622

 

# -*- coding: utf-8 -*-

"""

Created on Mon Dec 14 17:12:24 2020

 

@author: user1

"""

 

from pyecharts import options as opts

from pyecharts.charts import Bar

##JsCode 简单来说就是一段 Javascript 的代码,其作用是为对应能够使用 JsCode 的参数在 Echarts 渲染是提供的回调函数。

from pyecharts.commons.utils import JsCode

##pyecharts.globalsThemeType所有主题风格并进行详细的解释。

from pyecharts.globals import ThemeType

 

###a项目的值 和所占总数的百分比

list2 = [

    {"value": 12, "percent": 12 / (12 + 3)},

    {"value": 23, "percent": 23 / (23 + 21)},

    {"value": 33, "percent": 33 / (33 + 5)},

    {"value": 3, "percent": 3 / (3 + 52)},

    {"value": 33, "percent": 33 / (33 + 43)},

]

 

###b项目的值 和所占总数的百分比

##单独显示百分比,没有意义,需要当时的值和百分比,结合起来看看,才有意义。 

list3 = [

    {"value": 3, "percent": 3 / (12 + 3)},

    {"value": 21, "percent": 21 / (23 + 21)},

    {"value": 5, "percent": 5 / (33 + 5)},

    {"value": 52, "percent": 52 / (3 + 52)},

    {"value": 43, "percent": 43 / (33 + 43)},

]

 

print(list3)

 

##

c = (

##ThemeType=LIGHT = 'light' #明亮风格

     Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))

    .add_xaxis([1, 2, 3, 4, 5])

##y轴坐标

##格式为:.add_yaxis(具体参数),具体参数中,stack参数设置一个字符串。多个.add_yaxis()时,stack的值为一样的y值就会叠加在一起。

###代码示例如下:两个.add_yaxis()的stack值都为“stack1”,所以就堆叠在一起了。

###category_gap 为直方图   

##在y轴上,加入了当前的值和当前的值所占的百分比

    .add_yaxis("product1", list2, stack="stack1", category_gap="50%")

    .add_yaxis("product2", list3, stack="stack2", category_gap="50%")

##可以通过系列配置(.set_series_opts())控制图表中的文本,线样式,标记等,使用示例如下:

##

## 根据上图可以看到我们的在数据中设置的 value percent 都被保留了下来,因此我们只需要让我们的匿名函数把 return 的结果访问到 percent 处即可。在 Javascript 中,Object 对象的属性都可以通过 . 操作符进行方法, 因此访问我们设置的 percent 字段的 js 就可以写成 x.data.percent 了;此时,我们得到的结果是我们预设 percent 的值 0.8 (直接传入 字符串 80% 也是可以的),因此我们需要转化一下。

##将小数转化为百分比数据,首先需要 * 100, 然后通过精度保留函数取整。最后关键的函数变成了 Number(x.data.percent * 100).toFixed(); toFixed() 函数默认为 0,最大位数为 20 位;最后再拼上百分号即可。

    .set_series_opts(

        label_opts=opts.LabelOpts(

            position="right",

            formatter=JsCode(

                "function(x){return Number(x.data.percent * 100).toFixed() + '%';}"

            ),

        )

    )

    .render("stack_bar_percent.html")

)

总结:

##在这个案例里,获取到当前的销量的值和销量的百分比

##因为销量的百分比是有小数点,展示起来不好看,通过引入第三方插件jscode,将其凭凑成百分比

##当我们注意到同时显示销量和销售的百分比的时候,第一个销量只有点击图标才能展示。

##而销量百分比却可以直接在图表中显示出来。

原文地址:https://www.cnblogs.com/feiyun8616/p/14205468.html