将Matplotlib中的bar()
柱形图绘制重构为一个类,方便使用。
同时将标签集成在一个Label()
类中,方便修改。
#label.py
import matplotlib.pyplot as plt
class Label():
def __init__(self,
x_label='x-label',
x_loc='center',
x_fontsize=12,
y_label='y-label',
y_loc='center',
y_fontsize=12,
title='Title'
):
self.x_label = x_label
self.y_label = y_label
self.x_loc = x_loc
self.y_loc = y_loc
self.title = title
self.x_fontsize = x_fontsize
self.y_fontsize = y_fontsize
def label(self):
plt.title(self.title)
plt.xlabel(self.x_label,fontsize=self.x_fontsize,loc=self.x_loc)
plt.ylabel(self.y_label,fontsize=self.y_fontsize,loc=self.y_loc)
#column_chart.py
import numpy as np
import matplotlib.pyplot as plt
from label import Label
class ColumnChart():
def __init__(self,
x=0,
y=0,
label=Label(),
color='r',
width=0.5,
height=0.5,
):
self.x = x
self.y = y
self.label = label
self.color = color
self.width = width
self.height = height
def bar_show(self):
plt.bar(self.x,self.y,color=self.color,width=self.width)
self.label.label()
plt.show()
def barh_show(self):
plt.barh(self.x,self.y,color=self.color,height=self.height)
self.label.label()
plt.show()
def example_bar(self):
"""bar例子展示"""
x = np.array(['1','2','3','4','5'])
y = np.array([1,4,9,16,25])
print('ColumnChart-Example')
print('需传入ndarray数据')
print('x = '+str(x))
print('y = '+str(y))
print("ColumnChart(x,y,label=Label(),color='r',width=0.5)")
plt.bar(x,y,color=self.color,width=self.width)
self.label.label()
plt.show()
def example_barh(self):
"""barh例子展示"""
x = np.array(['1','2','3','4','5'])
y = np.array([1,4,9,16,25])
print('ColumnChart-Example')
print('需传入ndarray数据')
print('x = '+str(x))
print('y = '+str(y))
print("ColumnChart(x,y,label=Label(),color='r',height=0.5)")
plt.barh(x,y,color=self.color,height=self.height)
self.label.label()
plt.show()
# a = ColumnChart()
# a.example_barh()