pyechart布局

pyechart布局

from pyecharts.charts import Page,Grid,Bar
from pyecharts import options as opt

page1=Page(page_title="造价四剑客",layout=Page.SimplePageLayout)
bar=(
    Bar()
    .add_xaxis(["{}月".format(i) for i in range(1, 13)])
    .add_yaxis(
        "蒸发量",
        [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
        yaxis_index=0,
        color="#d14a61",
    )
    .add_yaxis(
        "降水量",
        [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
        yaxis_index=1,
        color="#5793f3",
    )

)
grid = (
    Grid(init_opts=opt.InitOpts(width="1700px",height="750px"))
    .add(bar,grid_opts=opt.GridOpts(is_show=True,pos_right="50%",pos_left="20%"))
    .render("造价四剑客再起.html"))

效果

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
作者Hankkin,源码PageLayoutDemo,一款简单的 page 切换 空布局、错误布局、加载布局,支持一键配置、定义,不需要 xml 编写该功能是支持单独为某个布局设置状态改变的,比如很多同学提到的我一个 listview 的数据没有获取到,fun initPage(targetView: Any),这个 targetView 你只需要设置成你的 listview 或者包裹你 listview 的 parent 布局就 OK 了,具体原理可以看下面的代码解析啊,遍历获取索引,然后记录索引值....项目中我们经常会用到的加载数据,加载完数据后显示内容,如果没有数据显示一个空白页,这是如果网络错误了显示一个网络错误页,自定义一个 PageLayout。绪论Android 中经常使用一个空白页和网络错误页用来提高用户体验,给用户一个较好的感官,如果获取到的数据为空,那么会显示一个空白数据页,如果在获取数据的过程中网络错误了,会显示一个网络异常页,像最近比较火的某东这样,见下图。网上也有一些开源的组件,大部分都是自定义继承某个布局在 xml 中让其作为跟布局,然后将自己的内容布局添加进去,效果也都不错,但是个人总觉得稍微有些麻烦,不是那么灵活,n 多个 xml 布局都去定义,写的心烦,所以有了今天的主角。 思考实现的思路实际上是和上面说的一样,只不过换了一种方式,我们手动获取到 contentView,将它从 DecorView 中移除,然后交给 PageLayout 取管理。当时考虑的时候就是不想在每个 xml 中去写页面切换的布局,那么我们可不可以用 Java 代码去控制?带着下面几个问题一起来看一下。1.自定义一个布局让其作为跟布局2.提供切换加载 loading、空白页 empty、错误页 errror、内容页 content功能3.怎么让其取管理上边的四个页面?4.contentView 怎么添加?5.如果我想切换的跟布局不是个 Activity 或者 Fragment 怎么办?6.因为切换页面状态的功能一般都是一个 APP 统一的,那么可不可以一键配置呢?实现1.代码设计首先我们定义 PageLayout 继承 FrameLayout 或者 LinearLayou 或者其他的布局都可以,然后我们需要提供切换四个布局的功能,当然如果支持自定义就更好了,还有状态布局里面的一些属性,还方便一键配置,所以最后采用了 Builder 模式来创建,使用方式就和 Android 里面的AlertDialog一样,通过 Builder 去构建一个 PageLayout。最后的样子是长这样的:方法注释showLoading()显示 loadingshowError()显示错误布局showEmpty()显示空布局hide()显示内容布局BuildersetLoading()setLoadingText()setError()setDefaultLoadingBlinkText()setEmpty()setLoadingTextColor()setDefaultEmptyText()setDefaultLoadingBlinkColor()setDefaultEmptyTextColor()setDefaultErrorText()setDefaultErrorTextColor()setEmptyDrawable()setErrorDrawable()默认样式PageLayout.Builder(this)                 .initPage(ll_default)                 .setOnRetryListener(object : PageLayout.OnRetryClickListener{                     override fun onRetry() {                         loadData()                     }                 })                 .create()自定义样式PageLayout.Builder(this)                 .initPage(ll_demo)                 .setLoading(R.layout.layout_loading_demo)                 .setEmpty(R.layout.layout_empty_demo,R.id.tv_page_empty_demo)                 .setError(R.layout.layout_error_demo,R.id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

い风花の雪栎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值