可以通过使用布局类实例的layout属性来设置画布中图表的布局。
图表可以放置在其容器中。 x 和 y 调整位置, w 和 h 调整大小。单位是容器的比例。图表不能放置在其容器之外,并且宽度和高度是主要限制:如果 x + w > 1 , 则 x = 1 - w。
x是从左到右的水平位置
y是从顶部开始的垂直位置
h是图表相对于其容器的高度
w是盒子的宽度
除了大小和位置之外,相关属性的模式还可以设置为 factor 或 edge ,默认值是 factor 。
可以将layoutTarget设置为 outer 或 inner 。默认值为 outer 。
图例的位置可以通过设置它的位置进行控制 r , l , t , b 和 tr 分别控制右, 左, 顶部,底部。默认值为 r 。
或应用手动布局
整个数据系列和单个数据点可以通过 graphicalProperties 广泛地设置样式。把事情做好可能需要一些时间。
仪表图组合了一个饼图和一个环形图去创建一个"仪表"。第一个图表时包含四个切片的环形图,前三个切片与仪表的颜色相对应,第二个切片对应仪表的颜色。第四部分是甜甜圈的一半,不可见。
添加了包含三个切片的饼图。第一个和第三个切片是不可见的,因此第二个切片可以充当仪表上的指针。
使用数据系列中各个数据点的图形属性来完成效果。
图表工作表是一个只包含图表的特殊工作表。图表的所有数据必须在不同的工作表上。
Matplotlib 很复杂,但用其中的命令风格模块 pyplot 就够用了。基本上就在命令行敲敲命令就能出图。很简单,官网有个 tutorial 以及几个简练的 demo
Matplotlib 推荐安装 numpy (定义 array 或者 matrix), scipy (用不上 备着),以及 ipython(interactive Python cmd)。
iPython 集成了 numpy 和 matplotlibpyplot 用的时候不用导入那些模块。matplotlib 的 pyplot 教程也是基于此。
windows 下 直接安装以上几个 python 包的 binary 就 ok,环境变量设置一下,没啥折腾的。
最近受江苏疫情影响,好多小伙伴都居家办公咯!为了密切关注疫情动态,最近写了爬取疫情分布的脚本,参考上篇链接。
既然我们已经获得了相应的江苏各个地级市的疫情数据,那么我们如何来使用Python实现将数据可视化在地图上呢?
Apache Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
简单来说,pyecharts具有以下特性:
3 Pyecharts 安装
使用pip进行安装如下:
因为我们需要使用pycharts绘制地图,此时我们还需要安装相应的地图文件包:
其中:
echarts-countries-pypkg 包为全球国家地图
echarts-china-provinces-pypkg包为中国省级地图
echarts-china-cities-pypkg 包为中国市级地图
安装完上述绘制地图相关的python包后,我们接下来开始画疫情分布地图。
首先,我们先来查看一段Pyecharts相关实现:
上述代码解释如下:
运行后会在当前目录生成 map_jiangsu_0803html,用浏览器打开后结果如下:
当鼠标移动到对应区域后,会显示出对应地级市今日新增人数。
上述脚本虽然可以实现我们的功能,但是颜色灰灰的,太过于单调,接下来我们来想办法进行美化,实现代码如下:
代码解释如下:
运行后会在当前目录生成 map_jiangsu_0803_newhtml,用浏览器打开后结果如下:
同理我们可以得到现有确诊人数分布如下:
进而我们可以得到累计确诊人数分布如下:
本人在使用groovy爬取了全国3000+城市的历史天气之后,需要把每个城市的历史天气都绘制一张Time Series表格,用来反映各地的最高温最低温温差的变化曲线。这里遇到了一个问题,每次plotly绘制完图标总会调起系统浏览器打开呈现,一旦我批量生成N多张表格时,电脑就会卡死了。在使用中文作为文件名的时候遇到了一个错误,这个错误刚好能巧妙解决这个问题。在不同编码格式的字符拼接时文件路径时,会报错,报错内容如下:
'ascii' codec can't encode characters in position 69-70: ordinal not in range(128)
然后程序停止运行,但是文件已经生成了。在做了异常处理后,刚好能满足需求。关于python27的编码问题,并不是很了解为什么出这个错。有大神了解的可以分享一下。
python部分的代码如下:
#!/usr/bin/python
# coding=utf-8
from firstdate import DatePlot
import os
from secondMysqlFission import MysqlFission
import shutil
import time
class Fission:
x = []
y = []
z = []
d = []
def __init__(self):
print "欢迎使用fission类!"
# def __init__(self,x,y,z,d):
# def __init__(self,name):
# selfname = name
# print "欢迎使用fission类!"
def getData(self, name):
size = 0;
with open("/Users/Vicky/Documents/workspace/source_api/long/" + name + "log") as apidata:
for i in apidata:
data = isplit("\r\n")[0]split("|")[0]
low = isplit("\r\n")[0]split("|")[1]
high = isplit("\r\n")[0]split("|")[2]
diff = int(high) - int(low)
selfxappend(data)
selfyappend(low)
selfzappend(high)
selfdappend(diff)
size += 1;
def getDataMarkLine(self, name):
with open("/Users/Vicky/Documents/workspace/source_api/long/" + name + "log") as apidata:
for i in apidata:
data = isplit("\r\n")[0]split("|")
day = data[0]
time = float(data[1])
selfxappend(day)
selfyappend(time)
return [selfx, selfy]
if __name__ == "__main__":
names = []
for name in names:
name = u"三沙"
sql = MysqlFission()
sqlgetWeather(name)
fission = Fission()
fissionx = []
fissiony = []
fissionz = []
fissiond = []
fissiongetData(name)
try:
DatePlotMakePlotTwo(fissionx, name, high=fissiony, low=fissionz, diff=fissiond)
except BaseException:
print 2
shutilcopyfile(name + "html", "/Users/Vicky/Desktop/w/" + name + "html")
osremove(name + "html")
timesleep(5)
下面是北京市的效果图:
以上就是关于Python-openpyxl教程10 - 图表布局,填充图案以及进阶图表全部的内容,包括:Python-openpyxl教程10 - 图表布局,填充图案以及进阶图表、python 有简单的图表库吗、「Python」使用Pyecharts生成疫情分布地图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)