OpenMediaVault在执行apt update/upgrade后会报如下错误

Traceback (most recent call last):
File “/usr/lib/python3.5/weakref.py”, line 117, in remove
TypeError: ‘NoneType’ object is not callable

问题讨论和解决方法地址:Github

解决方法一:

直接执行指令

wget -O /usr/lib/python3.5/weakref.py https://raw.githubusercontent.com/python/cpython/9cd7e17640a49635d1c1f8c2989578a8fc2c1de6/Lib/weakref.py

解决方法二:

打开/usr/lib/python3.5/weakref.py,将109行修改为

def remove(wr, selfref=ref(self), _atomic_removal=_remove_dead_weakref):

再将117行修改为

_atomic_removal(d, wr.key)

 

接触一下python plotly这个数据可视化的模块,万万没想到,走出去的第一步就踩进泥坑,描述一下我想要实现的功能:

用柱状图显示部分省份2018年的GDP以及GDP增长速度。也就是以城市为X坐标,GDP和增长率为Y坐标(左右各一个),每个城市两个柱形,显示10组这样的数据。

万万没想到,第一步就遇到了官方bug。

环境

  • python 3.6.6
  • plotly 3.7.1

参考

plotly的使用

  1. pip安装plotly
    pip install plotly
  2. 项目中引入plotly模块
    import plotly, json
    from plotly import graph_objs as go
  3. 通过官方文档熟悉其用法后,可以简单绘制出 y=x x∈[1, 4] 的函数图
    import plotly
    from plotly import graph_objs as go
    
    trace1 = go.Scatter(
        x=[1, 2, 3, 4],
        y=[1, 2, 3, 4]
    )
    
    data = [trace1]
    
    plotly.offline.plot(data, auto_play=True)

从陷入泥潭到实现目标

首先去收集了一下2018年部分省份的GDP信息,并以json格式存储到Data文件中,长这样:

{
    "cities":[{
        "name": "广州",
        "gdp": 21705.29,
        "speed": 7
    },
    {
        "name": "江苏",
        "gdp": 21093.3,
        "speed": 7.1
    },
    {
        "name": "山东",
        "gdp": 18900.6,
        "speed": 6.7
    },
    {
        "name": "浙江",
        "gdp": 11691,
        "speed": 7.4
    },
    {
        "name": "河南",
        "gdp": 10611,
        "speed": 7.9
    },
    {
        "name": "四川",
        "gdp": 8590.2,
        "speed": 8.2
    },
    {
        "name": "湖北",
        "gdp": 8188.84,
        "speed": 7.6
    },
    {
        "name": "上海",
        "gdp": 7863.40,
        "speed": 6.8
    },
    {
        "name": "湖南",
        "gdp": 7777.65,
        "speed": 8
    },
    {
        "name": "河北",
        "gdp": 7564,
        "speed": 6
    }]
}

Continue reading “python plotly数据可视化(踩坑纪实)”