图表
chart的Python项目详细描述
一个零依赖的python包,它将基本图表打印到jupyter输出中
支持的图表:
- 条形图
- 散点图
- 直方图
示例
使用bar
函数可以快速绘制条形图:
fromchartimportbarx=[500,200,900,400]y=['marc','mummify','chart','sausagelink']bar(x,y)
marc: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
mummify: ▇▇▇▇▇▇▇
chart: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
sausagelink: ▇▇▇▇▇▇▇▇▇▇▇▇▇
并且bar
函数可以接受来自pd.DataFrame
:
fromchartimportbarimportpandasaspddf=pd.DataFrame({'artist':['Tame Impala','Childish Gambino','The Knocks'],'listens':[8_456_831,18_185_245,2_556_448]})bar(df.listens,df.artist,width=20,label_width=11,mark='?')
Tame Impala: ?????????
Childish Ga: ????????????????????
The Knocks: ???
直方图同样简单:
fromchartimporthistogramx=[1,2,4,3,3,1,7,9,9,1,3,2,1,2]histogram(x)
▇
▇
▇
▇
▇ ▇
▇ ▇
▇ ▇
▇ ▇ ▇
▇ ▇ ▇
▇ ▇ ▇ ▇
它们可以接受由scipy
:
fromchartimporthistogramimportscipy.statsasstatsimportnumpyasnpnp.random.seed(14)n=stats.norm(loc=0,scale=10)histogram(n.rvs(100),bins=14,height=7,mark='?')
?
? ?
? ? ?
? ? ?
? ? ? ?
? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
可以使用简单的scatter
调用绘制散点图:
fromchartimportscatterx=range(0,20)y=range(0,20)scatter(x,y)
••••••••••••••••••••
在这一点上,你必须知道它与任何np.array
:
fromchartimportscatterimportnumpyasnpnp.random.seed(1)N=100x=np.random.normal(100,50,size=N)y=x*-2+25+np.random.normal(0,25,size=N)scatter(x,y,width=20,height=9,mark='^')
^^
^
^^^
^^^^^^^
^^^^^^
^^^^^^^
^^^^
^^^^^ ^
^^ ^
实际上,所有的chart
函数都与pandas、numpy、scipy和常规python对象一起工作。
预处理器
为了创建由bar
、histogram
和scatter
生成的简单输出,我必须创建两个预处理器,即:NumberBinarizer
和RangeScaler
。
我试着在构建过程中坚持scikit学习api。虽然你不需要他们使用chart
这里是他们为你的修补:
fromchart.preprocessingimportNumberBinarizernb=NumberBinarizer(bins=4)x=range(10)nb.fit(x)nb.transform(x)
[0, 0, 0, 1, 1, 2, 2, 3, 3, 3]
fromchart.preprocessingimportRangeScalerrs=RangeScaler(out_range=(0,10),round=False)x=range(50,59)rs.fit_transform(x)
[0.0, 1.25, 2.5, 3.75, 5.0, 6.25, 7.5, 8.75, 10.0]
安装
pipinstallchart
贡献
对于功能请求或错误报告,请使用Github Issues
灵感
我想要一个超轻量的库,可以让我快速搜索数据。matplotlib有太多的依赖关系,牛郎星似乎杀伤力过大。虽然我真的很喜欢termgraph的想法,但它并不能很好地适应或与我的jupyter工作流集成。这里是chart
(仍然不敢相信我在PyPI上找到了)