转:
问题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:小数点位的纵坐标如何显示
http://cncc.bingj.com/cache.aspx?q=from+pyecharts.charts++import+Bar&d=5024940062146568&mkt=zh-CN&setlang=zh-CN&w=LKuec-wxGD_tFAPVrsp3yB5JixgU6ggz
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.globals中ThemeType所有主题风格并进行详细的解释。
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,将其凭凑成百分比
##当我们注意到同时显示销量和销售的百分比的时候,第一个销量只有点击图标才能展示。
##而销量百分比却可以直接在图表中显示出来。