安装pygal,可参阅:pip和pygal的安装实例教程
基本XY线:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import pygal
from math import cos
"""
XY线是将各个点用直线连接起来的折线图
需提供一个横纵坐标元组作为元素的列表
"""
xy_chart = pygal.XY()
xy_chart.title = 'XY Cosinus'
xy_chart.add( 'x = cos(y)' , [(cos(x / 10. ), x / 10. ) for x in range ( - 50 , 50 , 5 )])
xy_chart.add( 'y = cos(x)' , [(x / 10. , cos(x / 10. )) for x in range ( - 50 , 50 , 5 )])
xy_chart.add( 'x = 1' , [( 1 , - 5 ), ( 1 , 5 )])
xy_chart.add( 'x = -1' , [( - 1 , - 5 ), ( - 1 , 5 )])
xy_chart.add( 'y = 1' , [( - 5 , 1 ), ( 5 , 1 )])
xy_chart.add( 'y = -1' , [( - 5 , - 1 ), ( 5 , - 1 )])
xy_chart.render_to_file( 'bar_chart.svg' )
|
散点图:
1
2
3
4
5
6
7
8
|
import pygal
xy_chart = pygal.XY(stroke = False )
xy_chart.title = 'Correlation'
xy_chart.add( 'A' , [( 0 , 0 ), (. 1 , . 2 ), (. 3 , . 1 ), (. 5 , 1 ), (. 8 , . 6 ), ( 1 , 1.08 ), ( 1.3 , 1.1 ), ( 2 , 3.23 ), ( 2.43 , 2 )])
xy_chart.add( 'B' , [(. 1 , . 15 ), (. 12 , . 23 ), (. 4 , . 3 ), (. 6 , . 4 ), (. 21 , . 21 ), (. 5 , . 3 ), (. 6 , . 8 ), (. 7 , . 8 )])
xy_chart.add( 'C' , [(. 05 , . 01 ), (. 13 , . 02 ), ( 1.5 , 1.7 ), ( 1.52 , 1.6 ), ( 1.8 , 1.63 ), ( 1.5 , 1.82 ), ( 1.7 , 1.23 ), ( 2.1 , 2.23 ), ( 2.3 , 1.98 )])
xy_chart.render_to_file( 'bar_chart.svg' )
|
日期:
你可以使用日期模块绘制与日期有关的图表
DateTime
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import pygal
from datetime import datetime
datetimeline = pygal.DateTimeLine(
x_label_rotation = 35 , truncate_label = - 1 ,
x_value_formatter = lambda dt: dt.strftime( '%d, %b %Y at %I:%M:%S %p' ))
datetimeline.add( "Serie" , [
(datetime( 2013 , 1 , 2 , 12 , 0 ), 300 ),
(datetime( 2013 , 1 , 12 , 14 , 30 , 45 ), 412 ),
(datetime( 2013 , 2 , 2 , 6 ), 823 ),
(datetime( 2013 , 2 , 22 , 9 , 45 ), 672 )
])
datetimeline.render_to_file( 'bar_chart.svg' )
|
Date
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import pygal
from datetime import date
dateline = pygal.DateLine(x_label_rotation = 25 )
dateline.x_labels = [
date( 2013 , 1 , 1 ),
date( 2013 , 7 , 1 ),
date( 2014 , 1 , 1 ),
date( 2014 , 7 , 1 ),
date( 2015 , 1 , 1 ),
date( 2015 , 7 , 1 )
]
dateline.add( "Serie" , [
(date( 2013 , 1 , 2 ), 213 ),
(date( 2013 , 8 , 2 ), 281 ),
(date( 2014 , 12 , 7 ), 198 ),
(date( 2015 , 3 , 21 ), 120 )
])
dateline.render_to_file( 'bar_chart.svg' )
|
Time
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import pygal
from datetime import time
dateline = pygal.TimeLine(x_label_rotation = 25 )
dateline.add( "Serie" , [
(time(), 0 ),
(time( 6 ), 5 ),
(time( 8 , 30 ), 12 ),
(time( 11 , 59 , 59 ), 4 ),
(time( 18 ), 10 ),
(time( 23 , 30 ), - 1 ),
])
dateline.render_to_file( 'bar_chart.svg' )
|
TimeDelta
1
2
3
4
5
6
7
8
9
10
11
12
|
import pygal
from datetime import timedelta
dateline = pygal.TimeDeltaLine(x_label_rotation = 25 )
dateline.add( "Serie" , [
(timedelta(), 0 ),
(timedelta(seconds = 6 ), 5 ),
(timedelta(minutes = 11 , seconds = 59 ), 4 ),
(timedelta(days = 3 , microseconds = 30 ), 12 ),
(timedelta(weeks = 1 ), 10 ),
])
dateline.render_to_file( 'bar_chart.svg' )
|
总结
以上就是本文关于Python编程pygal绘图实例之XY线的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
原文链接:http://www.cnblogs.com/keqipu/p/7283340.html