一个django应用程序,可以直接从模型绘制图表和透视图。使用highcharts和jquery javascript库在网页上呈现图表。

django-highchartit的Python项目详细描述


##################
Django-Highchartit
##################

.. 图片::https://readthedocs.org/projects/django-chartit2/badge/?version=latest
:目标:http://django-chartit2.readthedocs.org/en/latest/?徽章=最新
:alt:文档状态

…图片::https://travis-ci.org/grantmcconnaughey/django-chartit2.svg?branch=master
:目标:https://travis ci.org/grantmcconnaughey/django-chartit2

…图片::https://coveralls.io/repos/grantmcconnaughey/django-chartit2/badge.svg?branch=master&service=github
:目标:https://coveralls.io/github/grantmcconnaughey/django-chartit2?branch=master



django charit2和merge django chartit的fork新特性增加了对python 3和django 1.8+的支持!

django chart这是一款django应用程序,可用于从数据库中的数据轻松创建图表。图表使用"highcharts"和"jquery"javascript库呈现。数据库中的数据可以绘制为简单的折线图、柱形图、面积图、散点图,以及更多的图表类型。
数据也可以绘制为透视图,其中数据按特定列分组和/或进行透视。


=
=
=
功能
==


-从模型绘制图表。
-在图表的同一轴上绘制来自多个模型的数据。
-绘制图表从模型透视图。数据可以通过跨多个
列进行透视。
-图例透视图可以通过多个列进行透视。
-将多个模型中的数据合并到同一透视图上绘制。
-绘制帕累托图,按特定列排序。
-在透视图中只按类别列出前几项。



============================
===========对原始django-charit2的改进
==================================================================================
-增加了python 3兼容性
-添加了django 1.8和1.9兼容性
-添加了文档以阅读文档
-添加了通过travis ci进行的自动测试
-添加了通过工作服进行的测试覆盖率跟踪
-添加了来自django charit的注释支持从pypi安装django highcharts。只需执行以下操作:

$pip install django highcharit

您还需要支持javascript库。有关更多详细信息,请参见
"必需的javascript库"部分。

====
如何使用
==



在网页上绘制图表或透视图涉及以下步骤。


1。创建一个"datapool"或"pivotdatapool"对象,指定需要从何处检索的数据。创建一个"chart"或"pivotchart"对象,分别绘制
"数据池"或"pivotchatapool"中的数据。
3.将django``view``函数中的``chart`/``pivotchart``对象返回到django模板。
4。使用"加载图表"模板标记将图表加载到具有
特定"id"的html标记中。


通过示例更容易解释上述步骤。因此,请继续阅读。

==========
如何创建图表
======
下面是一个如何创建折线图的简短示例。假设我们有一个
简单的模型,有三个区域,一个用于月,两个用于波士顿
和休斯顿的温度。:

class monthlyweatherbycity(models.model):
month=models.integerfield()
boston-temp=models.decimalfield(最大位数=5,小数位数=1)
houston-temp=models.decimalfield(最大位数=5,小数位数=1)



from charit import datapool,chart

步骤1:用我们要检索的数据创建一个数据池。
weather data=\
datapool(
series=
[{'选项':{
'源代码':monthlyweatherbycity.objects.all()},
'术语':[
'月',
'休斯顿温度',
"波士顿温度"]}
]

第2步:创建chart对象
cht=chart(
datasource=weatherdata,
series\u options=
[{options':{
"类型":"行",
"stacking":false},
"terms":{
"month":[
"boston\u temp",
"houston\u temp"]
},
chart\u options=
{"title":{
"文本":"波士顿和休斯顿的天气数据"},
'xaxis':{
'title':{
'text':'month number'}})

``在django模板中过滤以呈现图表。::

<;头>;
<;!--包含highcharts和jquery库的代码放在这里-->;
<;!--加载图表筛选器获取ID的逗号分隔列表,其中-->;
<;!--图表需要呈现到-->;
{%load chartit%}
{{weatherchart{load_u charts:"container"}
<;/head>;
<;body>;
<;div id='container'>;图表将在此处呈现<;/div>;
<;/body>;

假设我们有以下模型。:

dailyweather类(models.model):
month=models.integerfield()
day=models.integerfield()
temperature=models.decimalfield(max_digits=5,decimal places=1)
rainfain=models.decimalfield(max_digits=5,小数位数=1)
城市=models.charfield(最大长度=50)
状态=models.charfield(最大长度=2)

我们要绘制一个月的轴图(沿x轴)与前三个城市的平均降雨量(沿y轴)之比月份。::

从图表导入数据透视池,数据透视图(请求):

定义雨量透视图视图:步骤1:使用要检索的数据创建数据透视数据池。
rainpivotdata=\
数据透视数据池(
系列=
[{选项:{
"源":dailyweather.objects.all(),
类别:['month']},
术语:{
'平均降雨量':平均降雨量',
'图例由':['city'],
"每个类别的顶部":3}
]


;步骤2:创建数据透视图对象
rainpivcht=\
数据透视图(
datasource=rainpivotdata,
series\u options=
[{options':{
"type":"column",
"stacking":true},
"terms":[
"avg_rain"]],
"chart_options=
{"title":{
"text":"rain by month in top 3 cities"},
'xaxis':{
'title':{
'text':'month'}}})


;第3步:将数据透视图对象发送到模板。
返回render到response({'rainpivchart':rainpivcht})

在django模板中呈现
图表。::

<;头>;
<;!--包含highcharts和jquery库的代码放在这里-->;
<;!--加载图表筛选器获取ID的逗号分隔列表,其中-->;
<;!--图表需要呈现到-->;
{%load chartit%}
{{{rainpivchart load\u charts:"container"}
<;/head>;
<;body>;
<;div id="container">;图表将在此处呈现<;/div>;
<;/body>;

====
呈现多个图表
====

可以在同一模板中呈现多个图表。"加载图表"的第一个
参数是图表对象或图表对象列表,
第二个是用逗号分隔的html id列表,其中将呈现图表。


调用django的"render"时,必须将所有图表作为列表传递:

return render(request,"index.html",
{
'图表列表':[图表1,图表2],
}



>然后在模板中必须使用正确的语法:

<;head>;
{%加载图表%}
{图表列表{加载图表:"图表1,图表"2"}
<;/head>;
<;body>;
<;div id="chart-1">;第一个图表将在此处呈现<;/div>;
<;div id="chart-2">;第二个图表将在此处呈现<;/div>;
<;/body>;

=====
演示
====


以上示例只是对
django chartit的简要介绍。有关更多示例和查看活动中的图表,请查看"演示网站"http://chardit.shutupandship.com/demo>;` ` `.


=======
文档
====


==
所需的javascript库
==
使用django highcharts需要以下javascript库。

-`jquery<;http://jquery.com>;http://jquery.com>;`
-`highcharts<;http://highcharts.com>;`

…注意:虽然"django chartit"和"django chartit 2"本身是根据bsd许可证授予许可的,但"highcharts"是根据"highcharts许可证"授予许可的
<;http://www.highcharts.com/license>;`而"jquery"是根据
mit许可证和gnu通用公共许可证(gpl)第2版获得许可的。下载和使用支持的javascript库时,您自己有责任遵守相应的许可证。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android应用程序在后台   如何使用java减去日期。sql。时间戳   在Eclipse中使用Tomcat和Maven的java抛出错误   java Runnable jar什么都不做,资源不导出   并发Java内存模型:volatiles和读/写重新排序   使用Morphia在MongoDB中进行java批量升级。可能吗?   java将自己创建的sqlite数据库复制到安卓失败   在java中使用嵌套循环解决消除?   地图上多个标记的java实时动画   java如何在J2EE web应用程序中从服务层调用DAO方法   java我只想浏览文件,并将其作为电子邮件中的文件。我应如何附加:   猜猜我在think Java中的数字是57   可以在java流中的groupingBy中使用foreach吗?   我的Java程序编译时没有任何错误,但不会完全运行