南昌seo网站,PHP网站建设视频免费,网站建设是前端么,网络平台推广在数据分析中#xff0c;不管是市场研究还是科学分析#xff0c;经常需要使用Python进行数据分析并生成图表报告。一般使用Python生成和展示图表时都是使用matplotlib 库生成静态图片文件#xff0c;这种方式不便之处是不方便跟动态文字段落结合在一起#xff0c;也不方便分…在数据分析中不管是市场研究还是科学分析经常需要使用Python进行数据分析并生成图表报告。一般使用Python生成和展示图表时都是使用matplotlib 库生成静态图片文件这种方式不便之处是不方便跟动态文字段落结合在一起也不方便分享。特别是我们需要使用Python定时自动生成数据分析报告并通过网络发布时如果使用Flask等网络框架技术门槛比较高实现复杂。本文探讨使用一种非常直接简单的方法来使用Python不依赖其他网络库直接生成图文并茂的网页文件这种方法可以广泛应用到数据分析里。
思路和实现步骤
先利用 matplotlib 库绘制精美的数据图表对数据进行直观呈现接着将生成的图表保存为图片再使用html代码模版以文本形式调用图片路径然后将生成的HTML代码通过Python的文件读写功能以文本的形式保存为文件文件格式设置为html。最后自动打开默认浏览器打开这个刚生成的html文件这样Python程序运行完就马上看到了生成的图文并茂的html数据分析报告了。。
这个Python程序的主要功能是生成一个包含数据可视化图表和特定HTML内容的网页并自动在默认浏览器中打开该网页。以下是对程序的详细总结
1. 数据可视化部分
导入必要的库导入了pylab、webbrowser、matplotlib.pyplot其中matplotlib.pyplot用于绘制图表webbrowser用于在浏览器中打开网页。设置图表参数 设置图片的像素、分辨率和图表的尺寸。解决中文显示问题指定默认字体为SimHei并解决负号显示为方块的问题。 定义数据定义了两个数据列表y和y2以及对应的x轴标签列表。绘制图表 设置图表的标题、x轴和y轴的标签。使用plt.plot()函数绘制两条折线图分别标记为Y和Y2并设置了线条的颜色、标记样式等。使用legend()函数显示图例。将x轴标签倾斜45度。在每个数据点上添加数字标签。在指定位置添加文本说明。反转y轴。将生成的图表保存为1.jpg文件并显示图表最后关闭图表窗口。
2. HTML文件生成部分
创建HTML文件创建两个HTML文件test.html和test2.html这是为了测试对比实际只需要生成1个文件。写入HTML内容 在test2.html中写入包含标题的HTML内容。在test.html中写入包含图片链接和自定义HTML内容的消息其中图片链接指向之前生成的1.jpg文件。 关闭文件关闭两个HTML文件。
3. 浏览器打开部分
使用webbrowser.open()函数在默认浏览器中打开test.html文件。
综上所述该程序的主要目的是将数据可视化图表和特定的HTML内容整合到一个网页中并自动在浏览器中展示。
最后上完整代码
# coding:utf-8此 Python 代码具备强大的功能能将数据可视化与网页生成巧妙结合。它先利用 matplotlib 库绘制精美的折线图对数据进行直观呈现解决了中文显示、负号显示等细节问题。接着将生成的图表保存为图片再自动创建 HTML 文件把图表和预设的 HTML 内容整合到网页中最后自动在默认浏览器中打开网页实现数据的可视化展示与传播。
适用人群
适合数据分析师、营销人员、学生等人群。数据分析师可用其直观展示数据分析结果营销人员能借此展示销售数据、市场趋势等学生则可用于课程作业、项目展示等。
yl2024年from pylab import *
import webbrowser #浏览器控制库如果仅仅是生成html文件可以不用
import matplotlib.pyplot as pltstr查看[21-1-10 - 21-1-16]#figsize(12.5, 4) # 设置 figsize
plt.rcParams[savefig.dpi] 300 #图片像素
plt.rcParams[figure.dpi] 200 #分辨率
# 默认的像素[6.0,4.0]分辨率为100图片尺寸为 600400
# 指定dpi200图片尺寸为 1200*800
# 指定dpi300图片尺寸为 1800*1200
# 设置figsize可以在不改变分辨率情况下改变比例
#解决中文显示问题
plt.rcParams[font.sans-serif] [SimHei] # 指定默认字体
plt.rcParams[axes.unicode_minus] False # 解决保存图像是负号-显示为方块的问题
plt.rcParams[figure.figsize] (10.0, 6.0) # 设置figure_size尺寸
font_label {family:SimHei,
weight : normal,
size : 20,
}
y[1,23,19,2300,3,5,12,2300,19,23,3,500,12]
y2[2,24,23,3,9,110,13,23,1300,26,3,9,10000]
x[2021-02-22,2021-03-22,2021-04-22,c,d,e,f,O,j,feb,jan,mar,oct]
plt.title(Keyword Ranking销售排名,fontdict{size:20},loccenter)
plt.xlabel(X轴,fontdictfont_label)
plt.ylabel(Y轴,fontdictfont_label)
plt.plot(x,y,linewidth3,colorr,markerD,markerfacecoloryellow, markersize5,linestyle-,labelY) #标记线为红色r,标点为大菱形D风格为虚线
plt.plot(x,y2,colorb,markerp,linestyle-,labelY2)
legend(locbest,titleName) #在plot()函数中增加一个参数label再通过legend()函数显示图例
plt.xticks(rotation45) #X横坐标倾斜60度
#plt.legend(bbox_to_anchor(1.05, 1), loc2, borderaxespad0.) #将说明图表放置在图表外# 设置数字标签
for a, b in zip(x, y):plt.text(a, b, b, hacenter, vatop, fontsize10) #fontsizestylehava参数分别是字号字体垂直对齐方式水平对齐方式
for a, b in zip(x, y2):plt.text(a, b, b, hacenter, vabottom, fontsize10)
plt.text(5,500,相关系数:\n增长幅度:,hacenter, vatop, fontsize10,colorb) #前面2个参数为xy对应坐标值ax plt.gca()
ax.invert_yaxis() #y轴反向
plt.savefig(1.jpg,dpi100)
#plt.show()
plt.close()# 命名生成的html
GEN_HTML test.html
htmlfile2test2.html
# 打开文件准备写入
f open(GEN_HTML, w,encodingUTF-8)
f2open(htmlfile2,w,encodingUTF-8)
title这是产品标题
bodyph1标题/h1/p
html
htmlheadtitle%s/title/headbody%s/body
/html
%(title,body)
f2.write(html)
f2.close()
print(f成功了)
# 准备相关变量
str1
h1这是标题/h1
a classa-link-normal s-no-outline href/gp/slredirect/picassoRedirect.html/refpa_sp_atf_aps_sr_pg1_1?ieUTF8amp;adIdA07267723HYUM7A1IS3F4amp;url%2FNew-Star-Foodservice-Commercial-Suction%2Fdp%2FB00DVXLML4%2Fref%3Dsr_1_1_sspa%3Fcrid%3D3D71DEYXHO6JB%26dchild%3D1%26keywords%3Dfrench%2Bfry%2Bcutter%26qid%3D1614913550%26sprefix%3Dfrench%2B%252Caps%252C470%26sr%3D8-1-spons%26psc%3D1amp;qualifier1614913550amp;id5497147329523695amp;widgetNamesp_atf
div classa-section aok-relative s-image-square-aspect
img srchttps://m.media-amazon.com/images/I/81OLbMScHL._AC_UL320_.jpg classs-image altSponsored Ad - New Star Food Service 42313 Commercial Restaurant French Fry Cutter with Suction Feet, 1/2-Inch srcsethttps://m.media-amazon.com/images/I/81OLbMScHL._AC_UL320_.jpg 1x, https://m.media-amazon.com/images/I/81OLbMScHL._AC_UL480_FMwebp_QL65_.jpg 1.5x, https://m.media-amazon.com/images/I/81OLbMScHL._AC_UL640_FMwebp_QL65_.jpg 2x, https://m.media-amazon.com/images/I/81OLbMScHL._AC_UL800_FMwebp_QL65_.jpg 2.5x, https://m.media-amazon.com/images/I/81OLbMScHL._AC_UL960_FMwebp_QL65_.jpg 3x data-image-index2 data-image-load data-image-latencys-product-image data-image-source-density1
/div
/astr2 r
img img alt测试图 src1.jpgb加粗/b
divdivulli font50 h1评论与销售分析/h1/lili 评分数相关分析/li/uldivtabletrtd table /tdtd bgcolor#0fff90 table2 /td/tr/table/div/div
/div
# 写入HTML界面中
message
html
head/head
body
p%s/p
p%s/p
/body
/html% (str1, str2)# 写入文件
f.write(message)
# 关闭文件
f.close()# 自动调用网络浏览器打开刚才生成的网页文件
webbrowser.open(GEN_HTML, new0)