手把手教你做一个数据图表生成器(附源码),2024年最新python信息管理系统设计

self.generate_btn = QPushButton()

self.generate_btn.setText(‘生成图表’)

self.generate_btn.clicked.connect(self.generate_btn_click)

‘’‘公共控件结束’‘’

‘’‘折线图/柱状图布局开始’‘’

form.addRow(self.selected_label, self.selected_cobox)

form.addRow(self.title_label, self.title_text)

form.addRow(self.subtitle_label, self.subtitle_text)

form.addRow(self.data_label_x, self.data_text_x)

form.addRow(self.data_label_y1_name,self.data_text_y1_name)

form.addRow(self.data_label_y1, self.data_text_y1)

form.addRow(self.data_label_y2_name,self.data_text_y2_name)

form.addRow(self.data_label_y2, self.data_text_y2)

‘’‘折线图/柱状图布局结束’‘’

‘’‘柱状图’‘’

form.addRow(self.pie_table_label, self.pie_table_text)

form.addRow(self.pie_radius, self.pie_radius_text)

form.addRow(self.pie_radius_cle, self.pie_radius_text_cle)

form.addRow(self.pie_data_label, self.pie_data_text)

‘’‘柱状图’‘’

‘’‘公共布局’‘’

form.addRow(self.save_dir_text, self.save_dir_btn)

form.addRow(self.version, self.generate_btn)

‘’‘公共布局’‘’

hbox = QHBoxLayout()

hbox.addWidget(self.brower)

hbox.addSpacing(10)

hbox.addLayout(form)

self.setLayout(hbox)

def save_dir_btn_click(self):

directory = QFileDialog.getExistingDirectory(self, “选取文件夹”, self.cwd)

self.save_dir_text.setText(directory)

def selected_cobox_change(self):

selected = self.selected_cobox.currentText().strip()

print(selected)

if selected == ‘Line(折线/面积图)’ \

or selected == ‘Bar(柱状图/条形图)’:

‘’‘显示控件’‘’

self.title_label.setVisible(True)

self.title_text.setVisible(True)

self.subtitle_label.setVisible(True)

self.subtitle_text.setVisible(True)

self.data_label_x.setVisible(True)

self.data_text_x.setVisible(True)

self.data_label_y1.setVisible(True)

self.data_text_y1.setVisible(True)

self.data_label_y2.setVisible(True)

self.data_text_y2.setVisible(True)

self.data_label_y1_name.setVisible(True)

self.data_text_y1_name.setVisible(True)

self.data_label_y2_name.setVisible(True)

self.data_text_y2_name.setVisible(True)

‘’‘隐藏控件’‘’

self.pie_table_label.setVisible(False)

self.pie_table_text.setVisible(False)

self.pie_data_label.setVisible(False)

self.pie_data_text.setVisible(False)

self.pie_radius.setVisible(False)

self.pie_radius_text.setVisible(False)

self.pie_radius_cle.setVisible(False)

self.pie_radius_text_cle.setVisible(False)

elif selected == ‘Pie(饼图)’:

‘’‘隐藏控件’‘’

self.title_label.setVisible(False)

self.title_text.setVisible(False)

self.subtitle_label.setVisible(False)

self.subtitle_text.setVisible(False)

self.data_label_x.setVisible(False)

self.data_text_x.setVisible(False)

self.data_label_y1.setVisible(False)

self.data_text_y1.setVisible(False)

self.data_label_y2.setVisible(False)

self.data_text_y2.setVisible(False)

self.data_label_y1_name.setVisible(False)

self.data_text_y1_name.setVisible(False)

self.data_label_y2_name.setVisible(False)

self.data_text_y2_name.setVisible(False)

‘’‘显示控件’‘’

self.pie_table_label.setVisible(True)

self.pie_table_text.setVisible(True)

self.pie_data_label.setVisible(True)

self.pie_data_text.setVisible(True)

self.pie_radius.setVisible(True)

self.pie_radius_text.setVisible(True)

self.pie_radius_cle.setVisible(True)

self.pie_radius_text_cle.setVisible(True)

def generate_btn_click(self):

selected = self.selected_cobox.currentText().strip()

if selected == ‘Pie(饼图)’:

pie_table_text = self.pie_table_text.text().strip()

print(pie_table_text)

pie_data_text_list = self.pie_data_text.text().strip().split(“,”)

print(pie_data_text_list)

list_data = []

for str_ in pie_data_text_list:

d_list = str_.split(“:”)

tuple_ = (d_list[0],) + (int(d_list[1]),)

list_data.append(tuple_)

print(list_data)

pie_radius_text = self.pie_radius_text.text()

print(pie_radius_text)

pie_radius_text_cle = self.pie_radius_text_cle.text()

print(pie_radius_text_cle)

pie = Pie()

pie.add(

series_name=pie_table_text,

data_pair=list_data,

radius=[pie_radius_text_cle, pie_radius_text],

rosetype=‘radius’

)

pie.set_series_opts(label_opts=options.LabelOpts(formatter=‘{b}:{d}%’))

pie.set_global_opts(title_opts=options.TitleOpts(title=pie_table_text))

html_file_path = self.save_dir_text.text().strip() + ‘/’ + datetime.now().strftime(“%Y%m%d%H%M%S”) + ‘.html’

print(html_file_path)

pie.render(html_file_path)

self.brower.setUrl(QUrl(html_file_path))

elif selected == ‘Bar(柱状图/条形图)’:

title = self.title_text.text().strip()

subtitle = self.subtitle_text.text().strip()

data_x = list(self.data_text_x.text().strip().split(“,”))

data_y1 = list(self.data_text_y1.text().strip().split(“,”))

data_y2 = list(self.data_text_y2.text().strip().split(‘,’))

bar = Bar()

bar.add_xaxis(data_x)

bar.add_yaxis(self.data_text_y1_name.text().strip(), data_y1)

bar.add_yaxis(self.data_text_y2_name.text().strip(), data_y2)

bar.set_global_opts(

title_opts=options.TitleOpts(title=title, subtitle=subtitle),

toolbox_opts=options.ToolboxOpts())

bar.set_series_opts(

label_opts=options.LabelOpts(is_show=False),

markpoint_opts=options.MarkPointOpts(data=[

options.MarkPointItem(type_=‘min’, name=‘最小值’),

options.MarkPointItem(type_=‘max’, name=‘最大值’)

]))

html_file_path = self.save_dir_text.text().strip() + ‘/’ + datetime.now().strftime(“%Y%m%d%H%M%S”) + ‘.html’

print(html_file_path)

bar.render(html_file_path)

self.brower.setUrl(QUrl(html_file_path))

elif selected == ‘Line(折线/面积图)’:

title = self.title_text.text().strip()

subtitle = self.subtitle_text.text().strip()

data_x = list(self.data_text_x.text().strip().split(“,”))

data_y1 = list(self.data_text_y1.text().strip().split(“,”))

data_y2 = list(self.data_text_y2.text().strip().split(‘,’))

line = Line()

3. 关联数据

line.add_xaxis(data_x)

line.add_yaxis(self.data_text_y1_name.text().strip(), data_y1,

is_smooth=True)

line.add_yaxis(self.data_text_y2_name.text().strip(), data_y2, markpoint_opts=options.MarkPointOpts(

data=[options.MarkPointItem(type_=‘min’, name=‘最小值’)]

))

line.set_series_opts(markline_opts=options.MarkLineOpts(

data=[options.MarkPointItem(type_=‘average’, name=‘平均值’),

options.MarkPointItem(type_=‘max’, name=‘最大值’)]

))

line.set_global_opts(title_opts=options.TitleOpts(title=title, subtitle=subtitle))

html_file_path = self.save_dir_text.text().strip() + ‘/’ + datetime.now().strftime(“%Y%m%d%H%M%S”) + ‘.html’

print(html_file_path)

line.render(html_file_path)

self.brower.setUrl(QUrl(html_file_path))

公众号内回复"数据图表生成器",获取完整源代码。

【往期精选】

动态指针时钟:利用pyqt5制作指针钟表显示实时时间

python 日志中最亮的仔,是喜欢的花里胡哨吖…

hashlib.md5()函数来筛选出系统重复文件并移除…

哈撒给,英雄联盟全皮肤下载器来了…

PyQt5的敏感词检测工具制作,运营者的福音…

手绘图片生成器:以雪容融为例一键生成…

刚刚出炉的冬奥会吉祥物:冰墩墩,附源码…

开工啦!批量向PDF文件添加中文水印…

大年初二、做了一个windows通知管理器!

百度图片下载器2.0
gif动态图片生成器,多张图片组合后生成动图…
python几个常见的数据处理操作,一行代码就能完成!

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数同学面临毕业设计项目选题时,很多人都会感到无从下手,尤其是对于计算机专业的学生来说,选择一个合适的题目尤为重要。因为毕业设计不仅是我们在大学四年学习的一个总结,更是展示自己能力的重要机会。

因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
img
img
img

既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!

由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频

如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
img

深知大多数同学面临毕业设计项目选题时,很多人都会感到无从下手,尤其是对于计算机专业的学生来说,选择一个合适的题目尤为重要。因为毕业设计不仅是我们在大学四年学习的一个总结,更是展示自己能力的重要机会。

因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
[外链图片转存中…(img-IjjBNI4V-1712580616394)]
[外链图片转存中…(img-eay77IMj-1712580616395)]
[外链图片转存中…(img-18Ke13kQ-1712580616396)]

既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!

由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频

如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
[外链图片转存中…(img-H93m2iRe-1712580616396)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值