commit
df9dc5a50c
@ -0,0 +1,3 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
@ -0,0 +1,19 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="PyPep8Inspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||||
|
<option name="ignoredErrors">
|
||||||
|
<list>
|
||||||
|
<option value="E231" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="PyShadowingBuiltinsInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||||
|
<option name="ignoredNames">
|
||||||
|
<list>
|
||||||
|
<option value="map" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</inspection_tool>
|
||||||
|
</profile>
|
||||||
|
</component>
|
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11" project-jdk-type="Python SDK" />
|
||||||
|
</project>
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/Bigdata_Code04.iml" filepath="$PROJECT_DIR$/.idea/Bigdata_Code04.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,212 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Awesome-pyecharts</title>
|
||||||
|
<script type="text/javascript" src="https://assets.pyecharts.org/assets/v5/echarts.min.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body >
|
||||||
|
<div id="3ae0304c01ae4d98aae9b937b0062576" class="chart-container" style="width:100%; height:500px; "></div>
|
||||||
|
<script>
|
||||||
|
var chart_3ae0304c01ae4d98aae9b937b0062576 = echarts.init(
|
||||||
|
document.getElementById('3ae0304c01ae4d98aae9b937b0062576'), 'white', {renderer: 'canvas'});
|
||||||
|
var option_3ae0304c01ae4d98aae9b937b0062576 = {
|
||||||
|
"animation": true,
|
||||||
|
"animationThreshold": 2000,
|
||||||
|
"animationDuration": 1000,
|
||||||
|
"animationEasing": "cubicOut",
|
||||||
|
"animationDelay": 0,
|
||||||
|
"animationDurationUpdate": 300,
|
||||||
|
"animationEasingUpdate": "cubicOut",
|
||||||
|
"animationDelayUpdate": 0,
|
||||||
|
"aria": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"color": [
|
||||||
|
"#5470c6",
|
||||||
|
"#91cc75",
|
||||||
|
"#fac858",
|
||||||
|
"#ee6666",
|
||||||
|
"#73c0de",
|
||||||
|
"#3ba272",
|
||||||
|
"#fc8452",
|
||||||
|
"#9a60b4",
|
||||||
|
"#ea7ccc"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"type": "bar",
|
||||||
|
"name": "\u4f01\u4e1a\u6570\u91cf\uff08\u4e2a\uff09",
|
||||||
|
"xAxisIndex": 0,
|
||||||
|
"yAxisIndex": 0,
|
||||||
|
"legendHoverLink": true,
|
||||||
|
"data": [
|
||||||
|
410,
|
||||||
|
318,
|
||||||
|
31,
|
||||||
|
213
|
||||||
|
],
|
||||||
|
"realtimeSort": false,
|
||||||
|
"showBackground": false,
|
||||||
|
"stackStrategy": "samesign",
|
||||||
|
"cursor": "pointer",
|
||||||
|
"barMinHeight": 0,
|
||||||
|
"barCategoryGap": "20%",
|
||||||
|
"barGap": "30%",
|
||||||
|
"large": false,
|
||||||
|
"largeThreshold": 400,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"clip": true,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"margin": 8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"legend": [
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u4f01\u4e1a\u6570\u91cf\uff08\u4e2a\uff09"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10,
|
||||||
|
"right": "30%",
|
||||||
|
"orient": "horizontal"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"show": true,
|
||||||
|
"trigger": "item",
|
||||||
|
"triggerOn": "mousemove|click",
|
||||||
|
"axisPointer": {
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
"showContent": true,
|
||||||
|
"alwaysShowContent": false,
|
||||||
|
"showDelay": 0,
|
||||||
|
"hideDelay": 100,
|
||||||
|
"enterable": false,
|
||||||
|
"confine": false,
|
||||||
|
"appendToBody": false,
|
||||||
|
"transitionDuration": 0.4,
|
||||||
|
"textStyle": {
|
||||||
|
"fontSize": 14
|
||||||
|
},
|
||||||
|
"borderWidth": 0,
|
||||||
|
"padding": 5,
|
||||||
|
"order": "seriesAsc"
|
||||||
|
},
|
||||||
|
"xAxis": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 0,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
"\u67f3\u5dde\u5e02",
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
"\u6842\u6797\u5e02"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"yAxis": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 0,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u9ad8\u65b0\u533a\u4f01\u4e1a\u6570\u91cf\u5730\u533a\u5206\u5e03\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"left": "30%",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grid": [
|
||||||
|
{
|
||||||
|
"show": false,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"left": "30%",
|
||||||
|
"top": "50px",
|
||||||
|
"right": "30%",
|
||||||
|
"bottom": "50px",
|
||||||
|
"containLabel": false,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"shadowOffsetX": 0,
|
||||||
|
"shadowOffsetY": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
chart_3ae0304c01ae4d98aae9b937b0062576.setOption(option_3ae0304c01ae4d98aae9b937b0062576);
|
||||||
|
window.addEventListener('resize', function(){
|
||||||
|
chart_3ae0304c01ae4d98aae9b937b0062576.resize();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,444 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Awesome-pyecharts</title>
|
||||||
|
<script type="text/javascript" src="https://assets.pyecharts.org/assets/v5/echarts.min.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body >
|
||||||
|
<div id="b9d7dc7de1554b2eb60696020b5f0eec" class="chart-container" style="width:100%; height:500px; "></div>
|
||||||
|
<script>
|
||||||
|
var chart_b9d7dc7de1554b2eb60696020b5f0eec = echarts.init(
|
||||||
|
document.getElementById('b9d7dc7de1554b2eb60696020b5f0eec'), 'white', {renderer: 'canvas'});
|
||||||
|
var option_b9d7dc7de1554b2eb60696020b5f0eec = {
|
||||||
|
"animation": true,
|
||||||
|
"animationThreshold": 2000,
|
||||||
|
"animationDuration": 1000,
|
||||||
|
"animationEasing": "cubicOut",
|
||||||
|
"animationDelay": 0,
|
||||||
|
"animationDurationUpdate": 300,
|
||||||
|
"animationEasingUpdate": "cubicOut",
|
||||||
|
"animationDelayUpdate": 0,
|
||||||
|
"aria": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"color": [
|
||||||
|
"#5470c6",
|
||||||
|
"#91cc75",
|
||||||
|
"#fac858",
|
||||||
|
"#ee6666",
|
||||||
|
"#73c0de",
|
||||||
|
"#3ba272",
|
||||||
|
"#fc8452",
|
||||||
|
"#9a60b4",
|
||||||
|
"#ea7ccc"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"type": "bar",
|
||||||
|
"name": "\u7814\u53d1\u603b\u6295\u5165\u989d\uff08\u5343\u5143\uff09",
|
||||||
|
"xAxisIndex": 0,
|
||||||
|
"yAxisIndex": 0,
|
||||||
|
"legendHoverLink": true,
|
||||||
|
"data": [
|
||||||
|
198840,
|
||||||
|
253759,
|
||||||
|
336134,
|
||||||
|
388239,
|
||||||
|
450939,
|
||||||
|
689272,
|
||||||
|
701244,
|
||||||
|
705254,
|
||||||
|
1335012,
|
||||||
|
1369700,
|
||||||
|
1958071,
|
||||||
|
2607203,
|
||||||
|
7389684,
|
||||||
|
15953630
|
||||||
|
],
|
||||||
|
"realtimeSort": false,
|
||||||
|
"showBackground": false,
|
||||||
|
"stackStrategy": "samesign",
|
||||||
|
"cursor": "pointer",
|
||||||
|
"barMinHeight": 0,
|
||||||
|
"barCategoryGap": "20%",
|
||||||
|
"barGap": "30%",
|
||||||
|
"large": false,
|
||||||
|
"largeThreshold": 400,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"clip": true,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"margin": 8
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "line",
|
||||||
|
"name": "\u7814\u53d1\u6295\u5165\u6bd4(%)",
|
||||||
|
"connectNulls": false,
|
||||||
|
"xAxisIndex": 1,
|
||||||
|
"yAxisIndex": 1,
|
||||||
|
"symbolSize": 4,
|
||||||
|
"showSymbol": true,
|
||||||
|
"smooth": false,
|
||||||
|
"clip": true,
|
||||||
|
"step": false,
|
||||||
|
"data": [
|
||||||
|
[
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
5.54
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
6.16
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u767e\u8272\u5e02",
|
||||||
|
5.02
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u7389\u6797\u5e02",
|
||||||
|
5.58
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u6cb3\u6c60\u5e02",
|
||||||
|
3.76
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u67f3\u5dde\u5e02",
|
||||||
|
8.11
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u5d07\u5de6\u5e02",
|
||||||
|
5.74
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u6765\u5bbe\u5e02",
|
||||||
|
3.24
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
1.38
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u6842\u6797\u5e02",
|
||||||
|
7.9
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u94a6\u5dde\u5e02",
|
||||||
|
5.23
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u8d35\u6e2f\u5e02",
|
||||||
|
6.02
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u8d3a\u5dde\u5e02",
|
||||||
|
6.22
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\u68a7\u5dde\u5e02",
|
||||||
|
7.96
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"hoverAnimation": true,
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"margin": 8
|
||||||
|
},
|
||||||
|
"logBase": 10,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
},
|
||||||
|
"areaStyle": {
|
||||||
|
"opacity": 0
|
||||||
|
},
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"legend": [
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u7814\u53d1\u603b\u6295\u5165\u989d\uff08\u5343\u5143\uff09"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10,
|
||||||
|
"left": "35%",
|
||||||
|
"orient": "horizontal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u7814\u53d1\u6295\u5165\u6bd4(%)"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10,
|
||||||
|
"right": "5%",
|
||||||
|
"orient": "horizontal"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"show": true,
|
||||||
|
"trigger": "item",
|
||||||
|
"triggerOn": "mousemove|click",
|
||||||
|
"axisPointer": {
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
"showContent": true,
|
||||||
|
"alwaysShowContent": false,
|
||||||
|
"showDelay": 0,
|
||||||
|
"hideDelay": 100,
|
||||||
|
"enterable": false,
|
||||||
|
"confine": false,
|
||||||
|
"appendToBody": false,
|
||||||
|
"transitionDuration": 0.4,
|
||||||
|
"textStyle": {
|
||||||
|
"fontSize": 14
|
||||||
|
},
|
||||||
|
"borderWidth": 0,
|
||||||
|
"padding": 5,
|
||||||
|
"order": "seriesAsc"
|
||||||
|
},
|
||||||
|
"xAxis": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 0,
|
||||||
|
"axisLabel": {
|
||||||
|
"show": true,
|
||||||
|
"margin": 8,
|
||||||
|
"interval": 0
|
||||||
|
},
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
"\u6765\u5bbe\u5e02",
|
||||||
|
"\u8d35\u6e2f\u5e02",
|
||||||
|
"\u8d3a\u5dde\u5e02",
|
||||||
|
"\u5d07\u5de6\u5e02",
|
||||||
|
"\u6cb3\u6c60\u5e02",
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
"\u68a7\u5dde\u5e02",
|
||||||
|
"\u94a6\u5dde\u5e02",
|
||||||
|
"\u7389\u6797\u5e02",
|
||||||
|
"\u767e\u8272\u5e02",
|
||||||
|
"\u6842\u6797\u5e02",
|
||||||
|
"\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
"\u67f3\u5dde\u5e02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 1,
|
||||||
|
"axisLabel": {
|
||||||
|
"show": true,
|
||||||
|
"margin": 8,
|
||||||
|
"interval": 0
|
||||||
|
},
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
"\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"\u767e\u8272\u5e02",
|
||||||
|
"\u7389\u6797\u5e02",
|
||||||
|
"\u6cb3\u6c60\u5e02",
|
||||||
|
"\u67f3\u5dde\u5e02",
|
||||||
|
"\u5d07\u5de6\u5e02",
|
||||||
|
"\u6765\u5bbe\u5e02",
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
"\u6842\u6797\u5e02",
|
||||||
|
"\u94a6\u5dde\u5e02",
|
||||||
|
"\u8d35\u6e2f\u5e02",
|
||||||
|
"\u8d3a\u5dde\u5e02",
|
||||||
|
"\u68a7\u5dde\u5e02"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"yAxis": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 0,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 1,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u5404\u5730\u5e02\u7814\u53d1\u603b\u6295\u5165\u5bf9\u6bd4\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"left": "5%",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u5404\u5730\u5e02\u7814\u53d1\u6295\u5165\u6bd4\u5206\u6790\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"left": "54%",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grid": [
|
||||||
|
{
|
||||||
|
"show": false,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"left": "5%",
|
||||||
|
"top": "50px",
|
||||||
|
"right": "55%",
|
||||||
|
"bottom": "50px",
|
||||||
|
"containLabel": false,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"shadowOffsetX": 0,
|
||||||
|
"shadowOffsetY": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": false,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"left": "55%",
|
||||||
|
"top": "50px",
|
||||||
|
"right": "5%",
|
||||||
|
"bottom": "50px",
|
||||||
|
"containLabel": false,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"shadowOffsetX": 0,
|
||||||
|
"shadowOffsetY": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
chart_b9d7dc7de1554b2eb60696020b5f0eec.setOption(option_b9d7dc7de1554b2eb60696020b5f0eec);
|
||||||
|
window.addEventListener('resize', function(){
|
||||||
|
chart_b9d7dc7de1554b2eb60696020b5f0eec.resize();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,290 @@
|
|||||||
|
import happybase
|
||||||
|
from pyecharts.charts import Bar, Pie, Page
|
||||||
|
from pyecharts.commons.utils import JsCode
|
||||||
|
from pyecharts.globals import ThemeType
|
||||||
|
from pyspark.sql import functions as F
|
||||||
|
from pyspark.sql import SparkSession, Row
|
||||||
|
import os
|
||||||
|
|
||||||
|
from pyspark.sql.functions import when, count
|
||||||
|
from pyecharts import options as opts
|
||||||
|
|
||||||
|
# 指定python环境
|
||||||
|
os.environ['PYSPARK_PYTHON'] = 'D:\python\python3.11.4\python.exe'
|
||||||
|
os.environ['JAVA_HOME'] = "D:\jdk\jdk-17.0.8" # 记得把地址改成自己的
|
||||||
|
|
||||||
|
def cky_code02():
|
||||||
|
# 创建Spark会话
|
||||||
|
spark = SparkSession.builder.appName("HBaseDataLoading").master('local').getOrCreate()
|
||||||
|
|
||||||
|
# 连接到HBase
|
||||||
|
connection = happybase.Connection('192.168.23.128')
|
||||||
|
|
||||||
|
# 获取表
|
||||||
|
table = connection.table('bigdata')
|
||||||
|
|
||||||
|
# 定义列名
|
||||||
|
columns = ['info:企业注册地址', 'info:主要外资来源国别或地区代码', 'info:营业收入', 'info:净利润']
|
||||||
|
|
||||||
|
# 查询数据
|
||||||
|
data = []
|
||||||
|
for key, row in table.scan(columns=[col.encode('utf-8') for col in columns]):
|
||||||
|
row_data = {
|
||||||
|
'序号': key.decode(),
|
||||||
|
'企业注册地址': row['info:企业注册地址'.encode('utf-8')].decode(),
|
||||||
|
'主要外资来源国别或地区代码': row['info:主要外资来源国别或地区代码'.encode('utf-8')].decode(),
|
||||||
|
'营业收入': row['info:营业收入'.encode('utf-8')].decode(),
|
||||||
|
'净利润': row['info:净利润'.encode('utf-8')].decode()
|
||||||
|
}
|
||||||
|
data.append(row_data)
|
||||||
|
|
||||||
|
# 关闭连接
|
||||||
|
connection.close()
|
||||||
|
|
||||||
|
# 将数据转换为Spark DataFrame
|
||||||
|
df = spark.createDataFrame([Row(**{k: str(v) for k, v in i.items()}) for i in data])
|
||||||
|
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('企业注册地址',
|
||||||
|
when(df['企业注册地址'].contains(city[:-1]), city).otherwise(df['企业注册地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
'柳太路': '柳州市',
|
||||||
|
'黎塘工业集中区东部产业园': '南宁市',
|
||||||
|
'广西壮族自治区工商行政管理局': '南宁市',
|
||||||
|
'三江县职业中学': '柳州市',
|
||||||
|
'心圩街道办事处高新工业园社区居委会': '南宁市',
|
||||||
|
'司能石油化工有限公司': '柳州市',
|
||||||
|
# 数字代号
|
||||||
|
'530003': '南宁市'
|
||||||
|
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('企业注册地址',
|
||||||
|
when(df['企业注册地址'].contains(county), city).otherwise(df['企业注册地址']))
|
||||||
|
|
||||||
|
filtered_df = df.filter(df["主要外资来源国别或地区代码"] > 0)
|
||||||
|
|
||||||
|
grouped_df = filtered_df.groupBy("企业注册地址")
|
||||||
|
result_df = grouped_df.agg(
|
||||||
|
F.sum("营业收入").alias("总营业收入"),
|
||||||
|
F.sum("净利润").alias("总净利润"),
|
||||||
|
F.count("*").alias("外企数量")
|
||||||
|
)
|
||||||
|
|
||||||
|
pandas_df = result_df.toPandas()
|
||||||
|
|
||||||
|
# 假设您的 Pandas DataFrame 中包含 X 轴和 Y 轴的数据
|
||||||
|
x_axis_data = list(pandas_df['企业注册地址']) # 替换 'X轴标签' 为实际列名
|
||||||
|
y_axis_data2 = list(pandas_df['总营业收入'])
|
||||||
|
y_axis_data3 = list(pandas_df['总净利润'])
|
||||||
|
|
||||||
|
# 创建柱状图
|
||||||
|
cky_code02_bar1 = (
|
||||||
|
Bar()
|
||||||
|
.add_xaxis(x_axis_data)
|
||||||
|
.add_yaxis(
|
||||||
|
'总营业收入(千元)', y_axis_data2,
|
||||||
|
label_opts=opts.LabelOpts(is_show=False), # 隐藏柱状图上的数字
|
||||||
|
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")) # 鼠标移动到柱形上显示数值)
|
||||||
|
.set_global_opts(title_opts=opts.TitleOpts(title='广西外企收入图'))
|
||||||
|
)
|
||||||
|
cky_code02_bar2 = (
|
||||||
|
Bar()
|
||||||
|
.add_xaxis(x_axis_data)
|
||||||
|
.add_yaxis(
|
||||||
|
'总净利润(千元)', y_axis_data3,
|
||||||
|
label_opts=opts.LabelOpts(is_show=False), # 隐藏柱状图上的数字
|
||||||
|
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")) # 鼠标移动到柱形上显示数值)
|
||||||
|
.set_global_opts(title_opts=opts.TitleOpts(title='广西外企收入图'))
|
||||||
|
)
|
||||||
|
data = list(zip(pandas_df['企业注册地址'], pandas_df['外企数量']))
|
||||||
|
cky_code02_pie = (
|
||||||
|
Pie(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
|
||||||
|
.add(
|
||||||
|
"",
|
||||||
|
data,
|
||||||
|
radius=["15%", "40%"], # 设置扇形图的内外半径
|
||||||
|
center=["50%", "850px"],
|
||||||
|
label_opts=opts.LabelOpts(
|
||||||
|
position="outside", # 标签显示在扇形区域的外部
|
||||||
|
formatter=JsCode("function(params){return params.name + ': ' + params.value;}"), # 标签格式化
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="外企数量分布"),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="vertical", # 图例垂直排列
|
||||||
|
pos_left="80%", # 图例位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return cky_code02_bar1, cky_code02_bar2, cky_code02_pie
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,439 @@
|
|||||||
|
import happybase
|
||||||
|
from pyecharts.charts import Bar, Pie, Page, Map
|
||||||
|
from pyecharts.commons.utils import JsCode
|
||||||
|
from pyspark.sql import functions as F
|
||||||
|
from pyspark.sql import SparkSession, Row
|
||||||
|
import os
|
||||||
|
|
||||||
|
from pyspark.sql.functions import when, count
|
||||||
|
from pyecharts import options as opts
|
||||||
|
|
||||||
|
# 指定python环境
|
||||||
|
os.environ['PYSPARK_PYTHON'] = 'D:\python\python3.11.4\python.exe'
|
||||||
|
os.environ['JAVA_HOME'] = "D:\jdk\jdk-17.0.8" # 记得把地址改成自己的
|
||||||
|
|
||||||
|
def cky_code03():
|
||||||
|
# 创建Spark会话
|
||||||
|
spark = SparkSession.builder.appName("HBaseDataLoading").master('local').getOrCreate()
|
||||||
|
|
||||||
|
# 连接到HBase
|
||||||
|
connection = happybase.Connection('192.168.23.128')
|
||||||
|
|
||||||
|
# 获取表
|
||||||
|
table = connection.table('bigdata')
|
||||||
|
|
||||||
|
# 定义列名
|
||||||
|
columns = ['info:企业注册地址', 'info:主要业务活动或主要产品1']
|
||||||
|
|
||||||
|
# 查询数据
|
||||||
|
data = []
|
||||||
|
for key, row in table.scan(columns=[col.encode('utf-8') for col in columns]):
|
||||||
|
row_data = {
|
||||||
|
'序号': key.decode(),
|
||||||
|
'企业注册地址': row['info:企业注册地址'.encode('utf-8')].decode(),
|
||||||
|
'主要业务活动或主要产品1': row['info:主要业务活动或主要产品1'.encode('utf-8')].decode()
|
||||||
|
}
|
||||||
|
data.append(row_data)
|
||||||
|
|
||||||
|
# 关闭连接
|
||||||
|
connection.close()
|
||||||
|
|
||||||
|
# 将数据转换为Spark DataFrame
|
||||||
|
df = spark.createDataFrame([Row(**{k: str(v) for k, v in i.items()}) for i in data])
|
||||||
|
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('企业注册地址',
|
||||||
|
when(df['企业注册地址'].contains(city[:-1]), city).otherwise(df['企业注册地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
'柳太路': '柳州市',
|
||||||
|
'黎塘工业集中区东部产业园': '南宁市',
|
||||||
|
'广西壮族自治区工商行政管理局': '南宁市',
|
||||||
|
'三江县职业中学': '柳州市',
|
||||||
|
'心圩街道办事处高新工业园社区居委会': '南宁市',
|
||||||
|
'司能石油化工有限公司': '柳州市',
|
||||||
|
# 数字代号
|
||||||
|
'530003': '南宁市'
|
||||||
|
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('企业注册地址',
|
||||||
|
when(df['企业注册地址'].contains(county), city).otherwise(df['企业注册地址']))
|
||||||
|
|
||||||
|
# 制造业
|
||||||
|
filter_df1 = df.filter(
|
||||||
|
df["主要业务活动或主要产品1"].like("%制造%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%生产%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%产品%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%工厂%")
|
||||||
|
)
|
||||||
|
grouped_df1 = filter_df1.groupBy("企业注册地址")
|
||||||
|
result_df1 = grouped_df1.agg(
|
||||||
|
F.count("*").alias("制造业数量")
|
||||||
|
)
|
||||||
|
|
||||||
|
# 服务业
|
||||||
|
filter_df2 = df.filter(
|
||||||
|
df["主要业务活动或主要产品1"].like("%服务%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%咨询%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%提供%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%客户%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%顾客%")
|
||||||
|
)
|
||||||
|
grouped_df2 = filter_df2.groupBy("企业注册地址")
|
||||||
|
result_df2 = grouped_df2.agg(
|
||||||
|
F.count("*").alias("服务业数量")
|
||||||
|
)
|
||||||
|
|
||||||
|
# 农业
|
||||||
|
filter_df3 = df.filter(
|
||||||
|
df["主要业务活动或主要产品1"].like("%农业%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%农田%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%种植%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%养殖%")
|
||||||
|
)
|
||||||
|
grouped_df3 = filter_df3.groupBy("企业注册地址")
|
||||||
|
result_df3 = grouped_df3.agg(
|
||||||
|
F.count("*").alias("农业数量")
|
||||||
|
)
|
||||||
|
|
||||||
|
# 金融业
|
||||||
|
filter_df4 = df.filter(
|
||||||
|
df["主要业务活动或主要产品1"].like("%金融%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%银行%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%贷款%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%投资%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%金融投资%")
|
||||||
|
)
|
||||||
|
grouped_df4 = filter_df4.groupBy("企业注册地址")
|
||||||
|
result_df4 = grouped_df4.agg(
|
||||||
|
F.count("*").alias("金融业数量")
|
||||||
|
)
|
||||||
|
|
||||||
|
# IT行业
|
||||||
|
filter_df5 = df.filter(
|
||||||
|
df["主要业务活动或主要产品1"].like("%技术%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%IT%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%软件%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%信息技术%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%开发%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%应用程序%")
|
||||||
|
)
|
||||||
|
grouped_df5 = filter_df5.groupBy("企业注册地址")
|
||||||
|
result_df5 = grouped_df5.agg(
|
||||||
|
F.count("*").alias("IT行业数量")
|
||||||
|
)
|
||||||
|
|
||||||
|
# 零售业
|
||||||
|
filter_df6 = df.filter(
|
||||||
|
df["主要业务活动或主要产品1"].like("%零售%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%销售%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%商店%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%商品%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%购物%")
|
||||||
|
)
|
||||||
|
grouped_df6 = filter_df6.groupBy("企业注册地址")
|
||||||
|
result_df6 = grouped_df6.agg(
|
||||||
|
F.count("*").alias("零售业数量")
|
||||||
|
)
|
||||||
|
|
||||||
|
# 建筑和房地产
|
||||||
|
filter_df7 = df.filter(
|
||||||
|
df["主要业务活动或主要产品1"].like("%建筑%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%房地产%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%工程%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%租赁%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%房产%")
|
||||||
|
)
|
||||||
|
grouped_df7 = filter_df7.groupBy("企业注册地址")
|
||||||
|
result_df7 = grouped_df7.agg(
|
||||||
|
F.count("*").alias("建筑和房地产数量")
|
||||||
|
)
|
||||||
|
|
||||||
|
# 媒体和娱乐业
|
||||||
|
filter_df8 = df.filter(
|
||||||
|
df["主要业务活动或主要产品1"].like("%媒体%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%广告%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%娱乐%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%节目%") |
|
||||||
|
df["主要业务活动或主要产品1"].like("%体育%")
|
||||||
|
)
|
||||||
|
grouped_df8 = filter_df8.groupBy("企业注册地址")
|
||||||
|
result_df8 = grouped_df8.agg(
|
||||||
|
F.count("*").alias("媒体和娱乐业数量")
|
||||||
|
)
|
||||||
|
|
||||||
|
# 制造业
|
||||||
|
data1 = result_df1.select("企业注册地址", "制造业数量").collect()
|
||||||
|
region_names1 = [row["企业注册地址"] for row in data1]
|
||||||
|
enterprise_counts1 = [row["制造业数量"] for row in data1]
|
||||||
|
# 服务业
|
||||||
|
data2 = result_df2.select("企业注册地址", "服务业数量").collect()
|
||||||
|
region_names2 = [row["企业注册地址"] for row in data2]
|
||||||
|
enterprise_counts2 = [row["服务业数量"] for row in data2]
|
||||||
|
# 农业
|
||||||
|
data3 = result_df3.select("企业注册地址", "农业数量").collect()
|
||||||
|
region_names3 = [row["企业注册地址"] for row in data3]
|
||||||
|
enterprise_counts3 = [row["农业数量"] for row in data3]
|
||||||
|
# 金融业
|
||||||
|
data4 = result_df4.select("企业注册地址", "金融业数量").collect()
|
||||||
|
region_names4 = [row["企业注册地址"] for row in data4]
|
||||||
|
enterprise_counts4 = [row["金融业数量"] for row in data4]
|
||||||
|
# IT行业
|
||||||
|
data5 = result_df5.select("企业注册地址", "IT行业数量").collect()
|
||||||
|
region_names5 = [row["企业注册地址"] for row in data5]
|
||||||
|
enterprise_counts5 = [row["IT行业数量"] for row in data5]
|
||||||
|
# 零售业
|
||||||
|
data6 = result_df6.select("企业注册地址", "零售业数量").collect()
|
||||||
|
region_names6 = [row["企业注册地址"] for row in data6]
|
||||||
|
enterprise_counts6 = [row["零售业数量"] for row in data6]
|
||||||
|
# 建筑和房地产
|
||||||
|
data7 = result_df7.select("企业注册地址", "建筑和房地产数量").collect()
|
||||||
|
region_names7 = [row["企业注册地址"] for row in data7]
|
||||||
|
enterprise_counts7 = [row["建筑和房地产数量"] for row in data7]
|
||||||
|
# 媒体和娱乐业
|
||||||
|
data8 = result_df8.select("企业注册地址", "媒体和娱乐业数量").collect()
|
||||||
|
region_names8 = [row["企业注册地址"] for row in data8]
|
||||||
|
enterprise_counts8 = [row["媒体和娱乐业数量"] for row in data8]
|
||||||
|
|
||||||
|
# 创建一个 Map 图表对象,并设置地图的基本属性
|
||||||
|
map_chart1 = (
|
||||||
|
Map()
|
||||||
|
.add("制造业", list(zip(region_names1, enterprise_counts1)), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西制造业企业数量分布图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(enterprise_counts1)),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
map_chart2 = (
|
||||||
|
Map()
|
||||||
|
.add("服务业", list(zip(region_names2, enterprise_counts2)), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西服务业企业数量分布图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(enterprise_counts2)),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
map_chart3 = (
|
||||||
|
Map()
|
||||||
|
.add("农业", list(zip(region_names3, enterprise_counts3)), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西农业企业数量分布图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(enterprise_counts3)),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
map_chart4 = (
|
||||||
|
Map()
|
||||||
|
.add("金融业", list(zip(region_names4, enterprise_counts4)), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西金融业企业数量分布图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(enterprise_counts4)),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
map_chart5 = (
|
||||||
|
Map()
|
||||||
|
.add("IT行业", list(zip(region_names5, enterprise_counts5)), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西IT行业企业数量分布图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(enterprise_counts5)),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
map_chart6 = (
|
||||||
|
Map()
|
||||||
|
.add("零售业", list(zip(region_names6, enterprise_counts6)), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西零售业企业数量分布图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(enterprise_counts6)),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
map_chart7 = (
|
||||||
|
Map()
|
||||||
|
.add("建筑和房地产", list(zip(region_names7, enterprise_counts7)), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西建筑和房地产企业数量分布图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(enterprise_counts7)),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
map_chart8 = (
|
||||||
|
Map()
|
||||||
|
.add("媒体和娱乐业", list(zip(region_names8, enterprise_counts8)), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西媒体和娱乐业企业数量分布图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(enterprise_counts8)),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
page = Page(layout=Page.SimplePageLayout)
|
||||||
|
page.add(map_chart1)
|
||||||
|
page.add(map_chart2)
|
||||||
|
page.add(map_chart3)
|
||||||
|
page.add(map_chart4)
|
||||||
|
page.add(map_chart5)
|
||||||
|
page.add(map_chart6)
|
||||||
|
page.add(map_chart7)
|
||||||
|
page.add(map_chart8)
|
||||||
|
|
||||||
|
return page
|
@ -0,0 +1,69 @@
|
|||||||
|
import happybase
|
||||||
|
from pyspark.sql import SparkSession
|
||||||
|
|
||||||
|
import os
|
||||||
|
os.environ['JAVA_HOME'] = "D:\jdk\jdk-17.0.8" # 记得把地址改成自己的
|
||||||
|
|
||||||
|
# 创建HBase连接
|
||||||
|
connection = happybase.Connection('192.168.23.128')
|
||||||
|
# 检查表是否存在
|
||||||
|
if b'bigdata' in connection.tables():
|
||||||
|
# 如果表存在,删除表
|
||||||
|
connection.disable_table('bigdata')
|
||||||
|
connection.delete_table('bigdata')
|
||||||
|
# 创建表
|
||||||
|
connection.create_table(
|
||||||
|
'bigdata',
|
||||||
|
{'info': dict(max_versions=10)}
|
||||||
|
)
|
||||||
|
# 获取表
|
||||||
|
table = connection.table('bigdata')
|
||||||
|
|
||||||
|
# 创建Spark会话
|
||||||
|
spark = SparkSession.builder.appName("ExcelDataCleaning").master('local').getOrCreate()
|
||||||
|
|
||||||
|
# 读取CSV文件为Spark DataFrame
|
||||||
|
df = spark.read.csv("washData.csv", header=True, inferSchema=True)
|
||||||
|
|
||||||
|
# 将Spark DataFrame转换为Pandas DataFrame
|
||||||
|
pd = df.toPandas()
|
||||||
|
|
||||||
|
# 将Pandas DataFrame的数据插入到HBase
|
||||||
|
for index, row in pd.iterrows():
|
||||||
|
data = {
|
||||||
|
f'info:地址'.encode(): str(row['地址']).encode(),
|
||||||
|
f'info:企业注册地址'.encode(): str(row['企业注册地址']).encode(),
|
||||||
|
f'info:营业收入'.encode(): str(row['营业收入']).encode(),
|
||||||
|
f'info:净利润'.encode(): str(row['净利润']).encode(),
|
||||||
|
f'info:其中:研发、试验检验费'.encode(): str(row['其中:研发、试验检验费']).encode(),
|
||||||
|
f'info:其中:技术(研究)开发费'.encode(): str(row['其中:技术(研究)开发费']).encode(),
|
||||||
|
f'info:其中:技术收入'.encode(): str(row['其中:技术收入']).encode(),
|
||||||
|
f'info:其中:技术转让收入'.encode(): str(row['其中:技术转让收入']).encode(),
|
||||||
|
f'info:技术承包收入'.encode(): str(row['技术承包收入']).encode(),
|
||||||
|
f'info:技术咨询与服务收入'.encode(): str(row['技术咨询与服务收入']).encode(),
|
||||||
|
f'info:年末资产总计'.encode(): str(row['年末资产总计']).encode(),
|
||||||
|
f'info:主要业务活动或主要产品1'.encode(): str(row['主要业务活动或主要产品1']).encode(),
|
||||||
|
f'info:主要外资来源国别或地区代码'.encode(): str(row['主要外资来源国别或地区代码']).encode(),
|
||||||
|
f'info:企业注册地是否在国家高新区内'.encode(): str(row['企业注册地是否在国家高新区内']).encode(),
|
||||||
|
f'info:企业主要生产经营活动是否在国家高新区内'.encode(): str(row['企业主要生产经营活动是否在国家高新区内']).encode(),
|
||||||
|
f'info:其中:支付科研人员的工资及福利费'.encode(): str(row['其中:支付科研人员的工资及福利费']).encode(),
|
||||||
|
f'info:营业成本'.encode(): str(row['营业成本']).encode()
|
||||||
|
}
|
||||||
|
table.put(str(row['序号']).encode(), data)
|
||||||
|
|
||||||
|
# 查询数据
|
||||||
|
# for key, data in table.scan():
|
||||||
|
# key = key.decode()
|
||||||
|
# data = {k.decode(): v.decode() for k, v in data.items()}
|
||||||
|
# print(key, data)
|
||||||
|
|
||||||
|
# 查询前20行数据
|
||||||
|
for i, (key, data) in enumerate(table.scan()):
|
||||||
|
if i >= 20:
|
||||||
|
break
|
||||||
|
key = key.decode()
|
||||||
|
data = {k.decode(): v.decode() for k, v in data.items()}
|
||||||
|
print(key, data)
|
||||||
|
|
||||||
|
# 关闭连接
|
||||||
|
connection.close()
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,585 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Awesome-pyecharts</title>
|
||||||
|
<script type="text/javascript" src="https://assets.pyecharts.org/assets/v5/echarts.min.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body >
|
||||||
|
<div id="0e1d92dda2cc4445a81150fe42354fc3" class="chart-container" style="width:100%; height:1100px; "></div>
|
||||||
|
<script>
|
||||||
|
var chart_0e1d92dda2cc4445a81150fe42354fc3 = echarts.init(
|
||||||
|
document.getElementById('0e1d92dda2cc4445a81150fe42354fc3'), 'white', {renderer: 'canvas'});
|
||||||
|
var option_0e1d92dda2cc4445a81150fe42354fc3 = {
|
||||||
|
"animation": true,
|
||||||
|
"animationThreshold": 2000,
|
||||||
|
"animationDuration": 1000,
|
||||||
|
"animationEasing": "cubicOut",
|
||||||
|
"animationDelay": 0,
|
||||||
|
"animationDurationUpdate": 300,
|
||||||
|
"animationEasingUpdate": "cubicOut",
|
||||||
|
"animationDelayUpdate": 0,
|
||||||
|
"aria": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"color": [
|
||||||
|
"#5470c6",
|
||||||
|
"#91cc75",
|
||||||
|
"#fac858",
|
||||||
|
"#ee6666",
|
||||||
|
"#73c0de",
|
||||||
|
"#3ba272",
|
||||||
|
"#fc8452",
|
||||||
|
"#9a60b4",
|
||||||
|
"#ea7ccc"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"type": "bar",
|
||||||
|
"name": "\u603b\u8425\u4e1a\u6536\u5165\uff08\u5343\u5143\uff09",
|
||||||
|
"xAxisIndex": 0,
|
||||||
|
"yAxisIndex": 0,
|
||||||
|
"legendHoverLink": true,
|
||||||
|
"data": [
|
||||||
|
1754614.29,
|
||||||
|
22527902.82,
|
||||||
|
621585.07,
|
||||||
|
14990633.42,
|
||||||
|
106681920.0,
|
||||||
|
1000186.0,
|
||||||
|
1028079.0,
|
||||||
|
1134649.72,
|
||||||
|
9217764.14,
|
||||||
|
3584805.0,
|
||||||
|
2078749.99
|
||||||
|
],
|
||||||
|
"realtimeSort": false,
|
||||||
|
"showBackground": false,
|
||||||
|
"stackStrategy": "samesign",
|
||||||
|
"cursor": "pointer",
|
||||||
|
"barMinHeight": 0,
|
||||||
|
"barCategoryGap": "20%",
|
||||||
|
"barGap": "30%",
|
||||||
|
"large": false,
|
||||||
|
"largeThreshold": 400,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"clip": true,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"label": {
|
||||||
|
"show": false,
|
||||||
|
"margin": 8
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"show": true,
|
||||||
|
"trigger": "item",
|
||||||
|
"triggerOn": "mousemove|click",
|
||||||
|
"axisPointer": {
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
"showContent": true,
|
||||||
|
"alwaysShowContent": false,
|
||||||
|
"showDelay": 0,
|
||||||
|
"hideDelay": 100,
|
||||||
|
"enterable": false,
|
||||||
|
"confine": false,
|
||||||
|
"appendToBody": false,
|
||||||
|
"transitionDuration": 0.4,
|
||||||
|
"formatter": "{b}: {c}",
|
||||||
|
"textStyle": {
|
||||||
|
"fontSize": 14
|
||||||
|
},
|
||||||
|
"borderWidth": 0,
|
||||||
|
"padding": 5,
|
||||||
|
"order": "seriesAsc"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "bar",
|
||||||
|
"name": "\u603b\u51c0\u5229\u6da6\uff08\u5343\u5143\uff09",
|
||||||
|
"xAxisIndex": 1,
|
||||||
|
"yAxisIndex": 1,
|
||||||
|
"legendHoverLink": true,
|
||||||
|
"data": [
|
||||||
|
57426.21,
|
||||||
|
206493.72,
|
||||||
|
53298.29,
|
||||||
|
974409.33,
|
||||||
|
4242059.0,
|
||||||
|
156597.0,
|
||||||
|
53254.3,
|
||||||
|
20418.84,
|
||||||
|
657616.33,
|
||||||
|
205935.0,
|
||||||
|
226457.38
|
||||||
|
],
|
||||||
|
"realtimeSort": false,
|
||||||
|
"showBackground": false,
|
||||||
|
"stackStrategy": "samesign",
|
||||||
|
"cursor": "pointer",
|
||||||
|
"barMinHeight": 0,
|
||||||
|
"barCategoryGap": "20%",
|
||||||
|
"barGap": "30%",
|
||||||
|
"large": false,
|
||||||
|
"largeThreshold": 400,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"clip": true,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"label": {
|
||||||
|
"show": false,
|
||||||
|
"margin": 8
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"show": true,
|
||||||
|
"trigger": "item",
|
||||||
|
"triggerOn": "mousemove|click",
|
||||||
|
"axisPointer": {
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
"showContent": true,
|
||||||
|
"alwaysShowContent": false,
|
||||||
|
"showDelay": 0,
|
||||||
|
"hideDelay": 100,
|
||||||
|
"enterable": false,
|
||||||
|
"confine": false,
|
||||||
|
"appendToBody": false,
|
||||||
|
"transitionDuration": 0.4,
|
||||||
|
"formatter": "{b}: {c}",
|
||||||
|
"textStyle": {
|
||||||
|
"fontSize": 14
|
||||||
|
},
|
||||||
|
"borderWidth": 0,
|
||||||
|
"padding": 5,
|
||||||
|
"order": "seriesAsc"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "pie",
|
||||||
|
"colorBy": "data",
|
||||||
|
"legendHoverLink": true,
|
||||||
|
"selectedMode": false,
|
||||||
|
"selectedOffset": 10,
|
||||||
|
"clockwise": true,
|
||||||
|
"startAngle": 90,
|
||||||
|
"minAngle": 0,
|
||||||
|
"minShowLabelAngle": 0,
|
||||||
|
"avoidLabelOverlap": true,
|
||||||
|
"stillShowZeroSum": true,
|
||||||
|
"percentPrecision": 2,
|
||||||
|
"showEmptyCircle": true,
|
||||||
|
"emptyCircleStyle": {
|
||||||
|
"color": "lightgray",
|
||||||
|
"borderColor": "#000",
|
||||||
|
"borderWidth": 0,
|
||||||
|
"borderType": "solid",
|
||||||
|
"borderDashOffset": 0,
|
||||||
|
"borderCap": "butt",
|
||||||
|
"borderJoin": "bevel",
|
||||||
|
"borderMiterLimit": 10,
|
||||||
|
"opacity": 1
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"name": "\u5357\u5b81\u5e02",
|
||||||
|
"value": 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u767e\u8272\u5e02",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u7389\u6797\u5e02",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u67f3\u5dde\u5e02",
|
||||||
|
"value": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u5d07\u5de6\u5e02",
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u5317\u6d77\u5e02",
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6842\u6797\u5e02",
|
||||||
|
"value": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u94a6\u5dde\u5e02",
|
||||||
|
"value": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u8d3a\u5dde\u5e02",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u68a7\u5dde\u5e02",
|
||||||
|
"value": 8
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"radius": [
|
||||||
|
"15%",
|
||||||
|
"40%"
|
||||||
|
],
|
||||||
|
"center": [
|
||||||
|
"50%",
|
||||||
|
"850px"
|
||||||
|
],
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"position": "outside",
|
||||||
|
"margin": 8,
|
||||||
|
"formatter": function(params){return params.name + ': ' + params.value;}
|
||||||
|
},
|
||||||
|
"labelLine": {
|
||||||
|
"show": true,
|
||||||
|
"showAbove": false,
|
||||||
|
"length": 15,
|
||||||
|
"length2": 15,
|
||||||
|
"smooth": false,
|
||||||
|
"minTurnAngle": 90,
|
||||||
|
"maxSurfaceAngle": 90
|
||||||
|
},
|
||||||
|
"xAxisIndex": 2,
|
||||||
|
"yAxisIndex": 2
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"legend": [
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u603b\u8425\u4e1a\u6536\u5165\uff08\u5343\u5143\uff09"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10,
|
||||||
|
"left": "35%",
|
||||||
|
"orient": "horizontal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u603b\u51c0\u5229\u6da6\uff08\u5343\u5143\uff09"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10,
|
||||||
|
"right": "5%",
|
||||||
|
"orient": "horizontal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
"\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"\u767e\u8272\u5e02",
|
||||||
|
"\u7389\u6797\u5e02",
|
||||||
|
"\u67f3\u5dde\u5e02",
|
||||||
|
"\u5d07\u5de6\u5e02",
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
"\u6842\u6797\u5e02",
|
||||||
|
"\u94a6\u5dde\u5e02",
|
||||||
|
"\u8d3a\u5dde\u5e02",
|
||||||
|
"\u68a7\u5dde\u5e02"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"left": "80%",
|
||||||
|
"orient": "horizontal",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10,
|
||||||
|
"right": "50%",
|
||||||
|
"top": "550px"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"show": true,
|
||||||
|
"trigger": "item",
|
||||||
|
"triggerOn": "mousemove|click",
|
||||||
|
"axisPointer": {
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
"showContent": true,
|
||||||
|
"alwaysShowContent": false,
|
||||||
|
"showDelay": 0,
|
||||||
|
"hideDelay": 100,
|
||||||
|
"enterable": false,
|
||||||
|
"confine": false,
|
||||||
|
"appendToBody": false,
|
||||||
|
"transitionDuration": 0.4,
|
||||||
|
"textStyle": {
|
||||||
|
"fontSize": 14
|
||||||
|
},
|
||||||
|
"borderWidth": 0,
|
||||||
|
"padding": 5,
|
||||||
|
"order": "seriesAsc"
|
||||||
|
},
|
||||||
|
"xAxis": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 0,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
"\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"\u767e\u8272\u5e02",
|
||||||
|
"\u7389\u6797\u5e02",
|
||||||
|
"\u67f3\u5dde\u5e02",
|
||||||
|
"\u5d07\u5de6\u5e02",
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
"\u6842\u6797\u5e02",
|
||||||
|
"\u94a6\u5dde\u5e02",
|
||||||
|
"\u8d3a\u5dde\u5e02",
|
||||||
|
"\u68a7\u5dde\u5e02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 1,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
"\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"\u767e\u8272\u5e02",
|
||||||
|
"\u7389\u6797\u5e02",
|
||||||
|
"\u67f3\u5dde\u5e02",
|
||||||
|
"\u5d07\u5de6\u5e02",
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
"\u6842\u6797\u5e02",
|
||||||
|
"\u94a6\u5dde\u5e02",
|
||||||
|
"\u8d3a\u5dde\u5e02",
|
||||||
|
"\u68a7\u5dde\u5e02"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"yAxis": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 0,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 1,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u5916\u8d44\u4f01\u4e1a\u5f15\u8fdb\u603b\u8425\u4e1a\u6536\u5165\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"left": "5%",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u5916\u8d44\u4f01\u4e1a\u5f15\u8fdb\u603b\u51c0\u5229\u6da6\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"left": "54%",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u5404\u5730\u5e02\u5916\u4f01\u6570\u91cf\u5206\u5e03\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"left": "25%",
|
||||||
|
"top": "550px",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grid": [
|
||||||
|
{
|
||||||
|
"show": false,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"left": "5%",
|
||||||
|
"top": "50px",
|
||||||
|
"right": "55%",
|
||||||
|
"bottom": "650px",
|
||||||
|
"containLabel": false,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"shadowOffsetX": 0,
|
||||||
|
"shadowOffsetY": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": false,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"left": "55%",
|
||||||
|
"top": "50px",
|
||||||
|
"right": "5%",
|
||||||
|
"bottom": "650px",
|
||||||
|
"containLabel": false,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"shadowOffsetX": 0,
|
||||||
|
"shadowOffsetY": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": false,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"left": "25%",
|
||||||
|
"top": "550px",
|
||||||
|
"right": "25%",
|
||||||
|
"bottom": "50px",
|
||||||
|
"containLabel": false,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"shadowOffsetX": 0,
|
||||||
|
"shadowOffsetY": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
chart_0e1d92dda2cc4445a81150fe42354fc3.setOption(option_0e1d92dda2cc4445a81150fe42354fc3);
|
||||||
|
window.addEventListener('resize', function(){
|
||||||
|
chart_0e1d92dda2cc4445a81150fe42354fc3.resize();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,15 @@
|
|||||||
|
import happybase
|
||||||
|
|
||||||
|
# HBase的连接信息
|
||||||
|
hbase_host = '192.168.23.128'
|
||||||
|
|
||||||
|
hbase_table_name = 'bigdata'
|
||||||
|
|
||||||
|
# 创建HBase连接
|
||||||
|
connection = happybase.Connection(host=hbase_host)
|
||||||
|
|
||||||
|
print(connection.tables())
|
||||||
|
|
||||||
|
|
||||||
|
# 关闭连接
|
||||||
|
connection.close()
|
@ -0,0 +1,306 @@
|
|||||||
|
from pyecharts.charts import Grid, Page
|
||||||
|
from pyecharts import options as opts
|
||||||
|
|
||||||
|
from cky_code01 import cky_code01
|
||||||
|
from cky_code02 import cky_code02
|
||||||
|
from cky_code03 import cky_code03
|
||||||
|
from lyh_code01 import lyh_code01
|
||||||
|
from lyh_code02 import lyh_code02
|
||||||
|
from lyh_code03 import lyh_code03
|
||||||
|
from xja_code01 import xja_code01
|
||||||
|
from xja_code02 import xja_code02
|
||||||
|
from xja_code03 import xja_code03
|
||||||
|
|
||||||
|
|
||||||
|
def result_image01():
|
||||||
|
cky_code01_bar = cky_code01()
|
||||||
|
cky_code02_bar, cky_code02_pie = cky_code02()
|
||||||
|
lyh_code01_bar = lyh_code01()
|
||||||
|
lyh_code02_bar = lyh_code02()
|
||||||
|
lyh_code03_bar = lyh_code03()
|
||||||
|
line = xja_code02()
|
||||||
|
bar = xja_code03()
|
||||||
|
|
||||||
|
cky_code01_bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西高新区企业数量地区分布图",
|
||||||
|
pos_left="5%"
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_left="35%", # 图例左侧位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
cky_code02_bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西外资企业引进收入对比图",
|
||||||
|
pos_left="54%"
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="5%", # 图例左侧位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
lyh_code01_bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市创新能力分析图",
|
||||||
|
pos_left="5%",
|
||||||
|
pos_top="500px",
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_left="35%", # 图例左侧位置
|
||||||
|
pos_top="500px",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
lyh_code02_bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市地域经济活力分析图",
|
||||||
|
pos_left="54%",
|
||||||
|
pos_top="500px",
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="5%", # 图例左侧位置
|
||||||
|
pos_top="500px",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
lyh_code03_bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市投资潜力分析图",
|
||||||
|
pos_left="5%",
|
||||||
|
pos_top="1000px",
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_left="35%", # 图例左侧位置
|
||||||
|
pos_top="1000px",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市研发总投入对比图",
|
||||||
|
pos_left="54%",
|
||||||
|
pos_top="1000px",
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="5%", # 图例左侧位置
|
||||||
|
pos_top="1000px",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
line.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市研发投入比分析图",
|
||||||
|
pos_left="25%",
|
||||||
|
pos_top="1500px",
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="25%", # 图例左侧位置
|
||||||
|
pos_top="1500px",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
cky_code02_pie.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市外企数量分布图",
|
||||||
|
pos_left="25%",
|
||||||
|
pos_top="2000px",
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="35%", # 图例左侧位置
|
||||||
|
pos_top="2000px",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
# 使用 Grid 将多个图表按网格布局组织在一起
|
||||||
|
grid = (
|
||||||
|
Grid(init_opts=opts.InitOpts(width="100%",height="2600px",bg_color="rgb(255, 255, 240)")) # 设置整个 Grid 区域的初始宽度和高度
|
||||||
|
.add(cky_code01_bar, grid_opts=opts.GridOpts(pos_left="5%", pos_right="55%", pos_top="50px", pos_bottom="2150px"))
|
||||||
|
.add(cky_code02_bar, grid_opts=opts.GridOpts(pos_left="55%", pos_right="5%", pos_top="50px", pos_bottom="2150px"))
|
||||||
|
.add(lyh_code01_bar, grid_opts=opts.GridOpts(pos_left="5%", pos_right="55%", pos_top="550px", pos_bottom="1650px"))
|
||||||
|
.add(lyh_code02_bar, grid_opts=opts.GridOpts(pos_left="55%", pos_right="5%", pos_top="550px", pos_bottom="1650px"))
|
||||||
|
.add(lyh_code03_bar, grid_opts=opts.GridOpts(pos_left="5%", pos_right="55%", pos_top="1050px", pos_bottom="1150px"))
|
||||||
|
.add(bar, grid_opts=opts.GridOpts(pos_left="55%", pos_right="5%", pos_top="1050px", pos_bottom="1150px"))
|
||||||
|
.add(line, grid_opts=opts.GridOpts(pos_left="25%", pos_right="25%", pos_top="1550px", pos_bottom="650px"))
|
||||||
|
.add(cky_code02_pie, grid_opts=opts.GridOpts(pos_left="25%", pos_right="25%", pos_top="2050px", pos_bottom="450px"))
|
||||||
|
)
|
||||||
|
|
||||||
|
# 生成 HTML 文件
|
||||||
|
grid.render('result_image01.html')
|
||||||
|
|
||||||
|
def result_image02():
|
||||||
|
|
||||||
|
cky_code03_map = cky_code03()
|
||||||
|
xja_code01_map = xja_code01()
|
||||||
|
|
||||||
|
# 将图表添加到 Page 中
|
||||||
|
page = Page(layout=Page.SimplePageLayout)
|
||||||
|
page.add(cky_code03_map)
|
||||||
|
page.add(xja_code01_map)
|
||||||
|
|
||||||
|
# 生成 HTML 文件
|
||||||
|
page.render('result_image02.html')
|
||||||
|
|
||||||
|
# 广西企业产业类型分布
|
||||||
|
def industry_type():
|
||||||
|
cky_code03().render('industry_type.html')
|
||||||
|
|
||||||
|
# 广西各地市整体经济发展
|
||||||
|
def whole_development():
|
||||||
|
lyh_code01_bar = lyh_code01()
|
||||||
|
lyh_code02_bar = lyh_code02()
|
||||||
|
lyh_code03_bar = lyh_code03()
|
||||||
|
|
||||||
|
lyh_code01_bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市创新能力分析图",
|
||||||
|
pos_left="5%"
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_left="35%", # 图例左侧位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
lyh_code02_bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市地域经济活力分析图",
|
||||||
|
pos_left="54%"
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="5%", # 图例左侧位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
lyh_code03_bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市投资潜力分析图",
|
||||||
|
pos_left="30%",
|
||||||
|
pos_top="500px",
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="30%", # 图例左侧位置
|
||||||
|
pos_top="500px",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
grid = (
|
||||||
|
Grid(init_opts=opts.InitOpts(width="100%", height="1000px")) # 设置整个 Grid 区域的初始宽度和高度
|
||||||
|
.add(lyh_code01_bar,grid_opts=opts.GridOpts(pos_left="5%", pos_right="55%", pos_top="50px", pos_bottom="550px"))
|
||||||
|
.add(lyh_code02_bar,grid_opts=opts.GridOpts(pos_left="55%", pos_right="5%", pos_top="50px", pos_bottom="550px"))
|
||||||
|
.add(lyh_code03_bar,grid_opts=opts.GridOpts(pos_left="30%", pos_right="30%", pos_top="550px", pos_bottom="50px"))
|
||||||
|
)
|
||||||
|
|
||||||
|
# 生成 HTML 文件
|
||||||
|
grid.render('whole_development.html')
|
||||||
|
|
||||||
|
# 广西外资企业发展情况
|
||||||
|
def foreign_capital_development():
|
||||||
|
cky_code02_bar1, cky_code02_bar2, cky_code02_pie = cky_code02()
|
||||||
|
|
||||||
|
cky_code02_bar1.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西外资企业引进总营业收入图",
|
||||||
|
pos_left="5%"
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_left="35%", # 图例左侧位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
cky_code02_bar2.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西外资企业引进总净利润图",
|
||||||
|
pos_left="54%"
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="5%", # 图例左侧位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
cky_code02_pie.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市外企数量分布图",
|
||||||
|
pos_left="25%",
|
||||||
|
pos_top="550px",
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="50%", # 图例左侧位置
|
||||||
|
pos_top="550px",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
grid = (
|
||||||
|
Grid(init_opts=opts.InitOpts(width="100%", height="1100px")) # 设置整个 Grid 区域的初始宽度和高度
|
||||||
|
.add(cky_code02_bar1,grid_opts=opts.GridOpts(pos_left="5%", pos_right="55%", pos_top="50px", pos_bottom="650px"))
|
||||||
|
.add(cky_code02_bar2,grid_opts=opts.GridOpts(pos_left="55%", pos_right="5%", pos_top="50px", pos_bottom="650px"))
|
||||||
|
.add(cky_code02_pie,grid_opts=opts.GridOpts(pos_left="25%", pos_right="25%", pos_top="550px", pos_bottom="50px"))
|
||||||
|
)
|
||||||
|
|
||||||
|
# 生成 HTML 文件
|
||||||
|
grid.render('foreign_capital_development.html')
|
||||||
|
|
||||||
|
# 广西各地高新区企业情况
|
||||||
|
def Hi_tech_Zone():
|
||||||
|
cky_code01_bar = cky_code01()
|
||||||
|
cky_code01_bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西高新区企业数量地区分布图",
|
||||||
|
pos_left="30%"
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="30%", # 图例左侧位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
grid = (
|
||||||
|
Grid(init_opts=opts.InitOpts(width="100%")) # 设置整个 Grid 区域的初始宽度和高度
|
||||||
|
.add(cky_code01_bar,grid_opts=opts.GridOpts(pos_left="30%", pos_right="30%", pos_top="50px", pos_bottom="50px"))
|
||||||
|
)
|
||||||
|
|
||||||
|
# 生成 HTML 文件
|
||||||
|
grid.render('Hi_tech_Zone.html')
|
||||||
|
|
||||||
|
# 广西各市潜力发展情况
|
||||||
|
def potential_development():
|
||||||
|
xja_code01().render('potential_development.html')
|
||||||
|
|
||||||
|
# 广西各市研发投入情况
|
||||||
|
def R_D_investment():
|
||||||
|
line = xja_code02()
|
||||||
|
bar = xja_code03()
|
||||||
|
|
||||||
|
bar.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市研发总投入对比图",
|
||||||
|
pos_left="5%"
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_left="35%", # 图例左侧位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
line.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(
|
||||||
|
title="2018年广西各地市研发投入比分析图",
|
||||||
|
pos_left="54%"
|
||||||
|
),
|
||||||
|
legend_opts=opts.LegendOpts(
|
||||||
|
orient="horizontal", # 图例方向,可以设置为 "horizontal" 或 "vertical"
|
||||||
|
pos_right="5%", # 图例左侧位置
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
grid = (
|
||||||
|
Grid(init_opts=opts.InitOpts(width="100%")) # 设置整个 Grid 区域的初始宽度和高度
|
||||||
|
.add(bar,grid_opts=opts.GridOpts(pos_left="5%", pos_right="55%", pos_top="50px", pos_bottom="50px"))
|
||||||
|
.add(line,grid_opts=opts.GridOpts(pos_left="55%", pos_right="5%", pos_top="50px", pos_bottom="50px"))
|
||||||
|
)
|
||||||
|
|
||||||
|
grid.render('R_D_investment.html')
|
||||||
|
|
||||||
|
industry_type()
|
@ -0,0 +1,609 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Awesome-pyecharts</title>
|
||||||
|
<script type="text/javascript" src="https://assets.pyecharts.org/assets/v5/echarts.min.js"></script>
|
||||||
|
<script type="text/javascript" src="https://assets.pyecharts.org/assets/v5/maps/guangxi.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body >
|
||||||
|
<style>.box { justify-content:center; display:flex; flex-wrap:wrap; } </style>
|
||||||
|
<div class="box">
|
||||||
|
<div id="0e897bdac701423fb498d758ea42d111" class="chart-container" style="width:900px; height:500px; "></div>
|
||||||
|
<script>
|
||||||
|
var chart_0e897bdac701423fb498d758ea42d111 = echarts.init(
|
||||||
|
document.getElementById('0e897bdac701423fb498d758ea42d111'), 'white', {renderer: 'canvas'});
|
||||||
|
var option_0e897bdac701423fb498d758ea42d111 = {
|
||||||
|
"animation": true,
|
||||||
|
"animationThreshold": 2000,
|
||||||
|
"animationDuration": 1000,
|
||||||
|
"animationEasing": "cubicOut",
|
||||||
|
"animationDelay": 0,
|
||||||
|
"animationDurationUpdate": 300,
|
||||||
|
"animationEasingUpdate": "cubicOut",
|
||||||
|
"animationDelayUpdate": 0,
|
||||||
|
"aria": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"color": [
|
||||||
|
"#5470c6",
|
||||||
|
"#91cc75",
|
||||||
|
"#fac858",
|
||||||
|
"#ee6666",
|
||||||
|
"#73c0de",
|
||||||
|
"#3ba272",
|
||||||
|
"#fc8452",
|
||||||
|
"#9a60b4",
|
||||||
|
"#ea7ccc"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"type": "map",
|
||||||
|
"name": "\u603b\u51c0\u5229\u6da6\uff08\u5343\u5143\uff09",
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"margin": 8
|
||||||
|
},
|
||||||
|
"map": "\u5e7f\u897f",
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"name": "\u5357\u5b81\u5e02",
|
||||||
|
"value": 5241781.91
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"value": 3794425.99
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u767e\u8272\u5e02",
|
||||||
|
"value": 2657971.63
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u7389\u6797\u5e02",
|
||||||
|
"value": 1241206.9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6cb3\u6c60\u5e02",
|
||||||
|
"value": 384359.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u67f3\u5dde\u5e02",
|
||||||
|
"value": 7257202.75
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u5d07\u5de6\u5e02",
|
||||||
|
"value": 365808.74
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6765\u5bbe\u5e02",
|
||||||
|
"value": -297085.32
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u5317\u6d77\u5e02",
|
||||||
|
"value": 621361.49
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6842\u6797\u5e02",
|
||||||
|
"value": 2292201.07
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u94a6\u5dde\u5e02",
|
||||||
|
"value": 934534.35
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u8d35\u6e2f\u5e02",
|
||||||
|
"value": 178624.06
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u8d3a\u5dde\u5e02",
|
||||||
|
"value": 301933.08
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u68a7\u5dde\u5e02",
|
||||||
|
"value": 1259616.47
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roam": true,
|
||||||
|
"aspectScale": 0.75,
|
||||||
|
"nameProperty": "name",
|
||||||
|
"selectedMode": false,
|
||||||
|
"zoom": 1,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"mapValueCalculation": "sum",
|
||||||
|
"showLegendSymbol": true,
|
||||||
|
"emphasis": {}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"legend": [
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u603b\u51c0\u5229\u6da6\uff08\u5343\u5143\uff09"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"show": true,
|
||||||
|
"trigger": "item",
|
||||||
|
"triggerOn": "mousemove|click",
|
||||||
|
"axisPointer": {
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
"showContent": true,
|
||||||
|
"alwaysShowContent": false,
|
||||||
|
"showDelay": 0,
|
||||||
|
"hideDelay": 100,
|
||||||
|
"enterable": false,
|
||||||
|
"confine": false,
|
||||||
|
"appendToBody": false,
|
||||||
|
"transitionDuration": 0.4,
|
||||||
|
"textStyle": {
|
||||||
|
"fontSize": 14
|
||||||
|
},
|
||||||
|
"borderWidth": 0,
|
||||||
|
"padding": 5,
|
||||||
|
"order": "seriesAsc"
|
||||||
|
},
|
||||||
|
"title": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u4f01\u4e1a\u603b\u51c0\u5229\u6da6\u5bf9\u6bd4\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"visualMap": {
|
||||||
|
"show": true,
|
||||||
|
"type": "continuous",
|
||||||
|
"min": 0,
|
||||||
|
"max": 7257202.75,
|
||||||
|
"inRange": {
|
||||||
|
"color": [
|
||||||
|
"#50a3ba",
|
||||||
|
"#eac763",
|
||||||
|
"#d94e5d"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"calculable": true,
|
||||||
|
"inverse": false,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"hoverLink": true,
|
||||||
|
"orient": "vertical",
|
||||||
|
"padding": 5,
|
||||||
|
"showLabel": true,
|
||||||
|
"itemWidth": 20,
|
||||||
|
"itemHeight": 140,
|
||||||
|
"borderWidth": 0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
chart_0e897bdac701423fb498d758ea42d111.setOption(option_0e897bdac701423fb498d758ea42d111);
|
||||||
|
</script>
|
||||||
|
<br/> <div id="c108d6d95b224e5caf6e15da383f3a87" class="chart-container" style="width:900px; height:500px; "></div>
|
||||||
|
<script>
|
||||||
|
var chart_c108d6d95b224e5caf6e15da383f3a87 = echarts.init(
|
||||||
|
document.getElementById('c108d6d95b224e5caf6e15da383f3a87'), 'white', {renderer: 'canvas'});
|
||||||
|
var option_c108d6d95b224e5caf6e15da383f3a87 = {
|
||||||
|
"animation": true,
|
||||||
|
"animationThreshold": 2000,
|
||||||
|
"animationDuration": 1000,
|
||||||
|
"animationEasing": "cubicOut",
|
||||||
|
"animationDelay": 0,
|
||||||
|
"animationDurationUpdate": 300,
|
||||||
|
"animationEasingUpdate": "cubicOut",
|
||||||
|
"animationDelayUpdate": 0,
|
||||||
|
"aria": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"color": [
|
||||||
|
"#5470c6",
|
||||||
|
"#91cc75",
|
||||||
|
"#fac858",
|
||||||
|
"#ee6666",
|
||||||
|
"#73c0de",
|
||||||
|
"#3ba272",
|
||||||
|
"#fc8452",
|
||||||
|
"#9a60b4",
|
||||||
|
"#ea7ccc"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"type": "map",
|
||||||
|
"name": "\u603b\u8425\u4e1a\u6536\u5165\uff08\u5343\u5143\uff09",
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"margin": 8
|
||||||
|
},
|
||||||
|
"map": "\u5e7f\u897f",
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"name": "\u5357\u5b81\u5e02",
|
||||||
|
"value": 151441450.9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"value": 49254099.09
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u767e\u8272\u5e02",
|
||||||
|
"value": 32417584.56
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u7389\u6797\u5e02",
|
||||||
|
"value": 28498772.95
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6cb3\u6c60\u5e02",
|
||||||
|
"value": 13119336.91
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u67f3\u5dde\u5e02",
|
||||||
|
"value": 229884654.61
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u5d07\u5de6\u5e02",
|
||||||
|
"value": 8330674.34
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6765\u5bbe\u5e02",
|
||||||
|
"value": 6505791.99
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u5317\u6d77\u5e02",
|
||||||
|
"value": 52442836.72
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6842\u6797\u5e02",
|
||||||
|
"value": 32689255.02
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u94a6\u5dde\u5e02",
|
||||||
|
"value": 16437820.97
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u8d35\u6e2f\u5e02",
|
||||||
|
"value": 4830641.02
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u8d3a\u5dde\u5e02",
|
||||||
|
"value": 6367779.99
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u68a7\u5dde\u5e02",
|
||||||
|
"value": 12843029.64
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roam": true,
|
||||||
|
"aspectScale": 0.75,
|
||||||
|
"nameProperty": "name",
|
||||||
|
"selectedMode": false,
|
||||||
|
"zoom": 1,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"mapValueCalculation": "sum",
|
||||||
|
"showLegendSymbol": true,
|
||||||
|
"emphasis": {}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"legend": [
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u603b\u8425\u4e1a\u6536\u5165\uff08\u5343\u5143\uff09"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"show": true,
|
||||||
|
"trigger": "item",
|
||||||
|
"triggerOn": "mousemove|click",
|
||||||
|
"axisPointer": {
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
"showContent": true,
|
||||||
|
"alwaysShowContent": false,
|
||||||
|
"showDelay": 0,
|
||||||
|
"hideDelay": 100,
|
||||||
|
"enterable": false,
|
||||||
|
"confine": false,
|
||||||
|
"appendToBody": false,
|
||||||
|
"transitionDuration": 0.4,
|
||||||
|
"textStyle": {
|
||||||
|
"fontSize": 14
|
||||||
|
},
|
||||||
|
"borderWidth": 0,
|
||||||
|
"padding": 5,
|
||||||
|
"order": "seriesAsc"
|
||||||
|
},
|
||||||
|
"title": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u4f01\u4e1a\u603b\u8425\u4e1a\u6536\u5165\u5bf9\u6bd4\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"visualMap": {
|
||||||
|
"show": true,
|
||||||
|
"type": "continuous",
|
||||||
|
"min": 0,
|
||||||
|
"max": 229884654.61,
|
||||||
|
"inRange": {
|
||||||
|
"color": [
|
||||||
|
"#50a3ba",
|
||||||
|
"#eac763",
|
||||||
|
"#d94e5d"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"calculable": true,
|
||||||
|
"inverse": false,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"hoverLink": true,
|
||||||
|
"orient": "vertical",
|
||||||
|
"padding": 5,
|
||||||
|
"showLabel": true,
|
||||||
|
"itemWidth": 20,
|
||||||
|
"itemHeight": 140,
|
||||||
|
"borderWidth": 0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
chart_c108d6d95b224e5caf6e15da383f3a87.setOption(option_c108d6d95b224e5caf6e15da383f3a87);
|
||||||
|
</script>
|
||||||
|
<br/> <div id="e5e216101fcc4e61b1e2044795921157" class="chart-container" style="width:900px; height:500px; "></div>
|
||||||
|
<script>
|
||||||
|
var chart_e5e216101fcc4e61b1e2044795921157 = echarts.init(
|
||||||
|
document.getElementById('e5e216101fcc4e61b1e2044795921157'), 'white', {renderer: 'canvas'});
|
||||||
|
var option_e5e216101fcc4e61b1e2044795921157 = {
|
||||||
|
"animation": true,
|
||||||
|
"animationThreshold": 2000,
|
||||||
|
"animationDuration": 1000,
|
||||||
|
"animationEasing": "cubicOut",
|
||||||
|
"animationDelay": 0,
|
||||||
|
"animationDurationUpdate": 300,
|
||||||
|
"animationEasingUpdate": "cubicOut",
|
||||||
|
"animationDelayUpdate": 0,
|
||||||
|
"aria": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"color": [
|
||||||
|
"#5470c6",
|
||||||
|
"#91cc75",
|
||||||
|
"#fac858",
|
||||||
|
"#ee6666",
|
||||||
|
"#73c0de",
|
||||||
|
"#3ba272",
|
||||||
|
"#fc8452",
|
||||||
|
"#9a60b4",
|
||||||
|
"#ea7ccc"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"type": "map",
|
||||||
|
"name": "\u6570\u91cf",
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"margin": 8
|
||||||
|
},
|
||||||
|
"map": "\u5e7f\u897f",
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"name": "\u5357\u5b81\u5e02",
|
||||||
|
"value": 751
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"value": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u767e\u8272\u5e02",
|
||||||
|
"value": 42
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u7389\u6797\u5e02",
|
||||||
|
"value": 53
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6cb3\u6c60\u5e02",
|
||||||
|
"value": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u67f3\u5dde\u5e02",
|
||||||
|
"value": 440
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u5d07\u5de6\u5e02",
|
||||||
|
"value": 28
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6765\u5bbe\u5e02",
|
||||||
|
"value": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u5317\u6d77\u5e02",
|
||||||
|
"value": 56
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u6842\u6797\u5e02",
|
||||||
|
"value": 236
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u94a6\u5dde\u5e02",
|
||||||
|
"value": 66
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u8d35\u6e2f\u5e02",
|
||||||
|
"value": 39
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u8d3a\u5dde\u5e02",
|
||||||
|
"value": 21
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "\u68a7\u5dde\u5e02",
|
||||||
|
"value": 69
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roam": true,
|
||||||
|
"aspectScale": 0.75,
|
||||||
|
"nameProperty": "name",
|
||||||
|
"selectedMode": false,
|
||||||
|
"zoom": 1,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"mapValueCalculation": "sum",
|
||||||
|
"showLegendSymbol": true,
|
||||||
|
"emphasis": {}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"legend": [
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u6570\u91cf"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"show": true,
|
||||||
|
"trigger": "item",
|
||||||
|
"triggerOn": "mousemove|click",
|
||||||
|
"axisPointer": {
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
"showContent": true,
|
||||||
|
"alwaysShowContent": false,
|
||||||
|
"showDelay": 0,
|
||||||
|
"hideDelay": 100,
|
||||||
|
"enterable": false,
|
||||||
|
"confine": false,
|
||||||
|
"appendToBody": false,
|
||||||
|
"transitionDuration": 0.4,
|
||||||
|
"textStyle": {
|
||||||
|
"fontSize": 14
|
||||||
|
},
|
||||||
|
"borderWidth": 0,
|
||||||
|
"padding": 5,
|
||||||
|
"order": "seriesAsc"
|
||||||
|
},
|
||||||
|
"title": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u4f01\u4e1a\u6570\u91cf\u5206\u5e03\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"visualMap": {
|
||||||
|
"show": true,
|
||||||
|
"type": "continuous",
|
||||||
|
"min": 0,
|
||||||
|
"max": 751,
|
||||||
|
"inRange": {
|
||||||
|
"color": [
|
||||||
|
"#50a3ba",
|
||||||
|
"#eac763",
|
||||||
|
"#d94e5d"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"calculable": true,
|
||||||
|
"inverse": false,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"hoverLink": true,
|
||||||
|
"orient": "vertical",
|
||||||
|
"padding": 5,
|
||||||
|
"showLabel": true,
|
||||||
|
"itemWidth": 20,
|
||||||
|
"itemHeight": 140,
|
||||||
|
"borderWidth": 0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
chart_e5e216101fcc4e61b1e2044795921157.setOption(option_e5e216101fcc4e61b1e2044795921157);
|
||||||
|
</script>
|
||||||
|
<br/> </div>
|
||||||
|
<script>
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,584 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Awesome-pyecharts</title>
|
||||||
|
<script type="text/javascript" src="https://assets.pyecharts.org/assets/v5/echarts.min.js"></script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body >
|
||||||
|
<div id="76e98bf0e56d4ee99d70eefd2c0cce7c" class="chart-container" style="width:100%; height:1000px; "></div>
|
||||||
|
<script>
|
||||||
|
var chart_76e98bf0e56d4ee99d70eefd2c0cce7c = echarts.init(
|
||||||
|
document.getElementById('76e98bf0e56d4ee99d70eefd2c0cce7c'), 'white', {renderer: 'canvas'});
|
||||||
|
var option_76e98bf0e56d4ee99d70eefd2c0cce7c = {
|
||||||
|
"animation": true,
|
||||||
|
"animationThreshold": 2000,
|
||||||
|
"animationDuration": 1000,
|
||||||
|
"animationEasing": "cubicOut",
|
||||||
|
"animationDelay": 0,
|
||||||
|
"animationDurationUpdate": 300,
|
||||||
|
"animationEasingUpdate": "cubicOut",
|
||||||
|
"animationDelayUpdate": 0,
|
||||||
|
"aria": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"color": [
|
||||||
|
"#5470c6",
|
||||||
|
"#91cc75",
|
||||||
|
"#fac858",
|
||||||
|
"#ee6666",
|
||||||
|
"#73c0de",
|
||||||
|
"#3ba272",
|
||||||
|
"#fc8452",
|
||||||
|
"#9a60b4",
|
||||||
|
"#ea7ccc"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"type": "bar",
|
||||||
|
"name": "\u521b\u65b0\u80fd\u529b",
|
||||||
|
"xAxisIndex": 0,
|
||||||
|
"yAxisIndex": 0,
|
||||||
|
"legendHoverLink": true,
|
||||||
|
"data": [
|
||||||
|
0.91922,
|
||||||
|
0.29186,
|
||||||
|
0.07183,
|
||||||
|
0.04824,
|
||||||
|
0.01206,
|
||||||
|
0.01148,
|
||||||
|
0.01124,
|
||||||
|
0.00667,
|
||||||
|
0.00616,
|
||||||
|
0.00555,
|
||||||
|
0.00421,
|
||||||
|
0.00305,
|
||||||
|
0.00256,
|
||||||
|
0.00207
|
||||||
|
],
|
||||||
|
"realtimeSort": false,
|
||||||
|
"showBackground": false,
|
||||||
|
"stackStrategy": "samesign",
|
||||||
|
"cursor": "pointer",
|
||||||
|
"barMinHeight": 0,
|
||||||
|
"barCategoryGap": "20%",
|
||||||
|
"barGap": "30%",
|
||||||
|
"large": false,
|
||||||
|
"largeThreshold": 400,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"clip": true,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"position": "top",
|
||||||
|
"margin": 8,
|
||||||
|
"formatter": "{c}"
|
||||||
|
},
|
||||||
|
"rippleEffect": {
|
||||||
|
"show": true,
|
||||||
|
"brushType": "stroke",
|
||||||
|
"scale": 2.5,
|
||||||
|
"period": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "bar",
|
||||||
|
"name": "\u7ecf\u6d4e\u6d3b\u529b\u6307\u6570",
|
||||||
|
"xAxisIndex": 1,
|
||||||
|
"yAxisIndex": 1,
|
||||||
|
"legendHoverLink": true,
|
||||||
|
"data": [
|
||||||
|
0.83,
|
||||||
|
0.81,
|
||||||
|
0.25,
|
||||||
|
0.2,
|
||||||
|
0.15,
|
||||||
|
0.14,
|
||||||
|
0.11,
|
||||||
|
0.09,
|
||||||
|
0.09,
|
||||||
|
0.04,
|
||||||
|
0.04,
|
||||||
|
0.03,
|
||||||
|
0.03,
|
||||||
|
0.02
|
||||||
|
],
|
||||||
|
"realtimeSort": false,
|
||||||
|
"showBackground": false,
|
||||||
|
"stackStrategy": "samesign",
|
||||||
|
"cursor": "pointer",
|
||||||
|
"barMinHeight": 0,
|
||||||
|
"barCategoryGap": "20%",
|
||||||
|
"barGap": "30%",
|
||||||
|
"large": false,
|
||||||
|
"largeThreshold": 400,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"clip": true,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"position": "top",
|
||||||
|
"margin": 8,
|
||||||
|
"formatter": "{c}"
|
||||||
|
},
|
||||||
|
"rippleEffect": {
|
||||||
|
"show": true,
|
||||||
|
"brushType": "stroke",
|
||||||
|
"scale": 2.5,
|
||||||
|
"period": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "bar",
|
||||||
|
"name": "\u6295\u8d44\u6f5c\u529b",
|
||||||
|
"xAxisIndex": 2,
|
||||||
|
"yAxisIndex": 2,
|
||||||
|
"legendHoverLink": true,
|
||||||
|
"data": [
|
||||||
|
0.91,
|
||||||
|
0.83,
|
||||||
|
0.28,
|
||||||
|
0.22,
|
||||||
|
0.19,
|
||||||
|
0.14,
|
||||||
|
0.14,
|
||||||
|
0.11,
|
||||||
|
0.11,
|
||||||
|
0.06,
|
||||||
|
0.04,
|
||||||
|
0.04,
|
||||||
|
0.03,
|
||||||
|
0.03
|
||||||
|
],
|
||||||
|
"realtimeSort": false,
|
||||||
|
"showBackground": false,
|
||||||
|
"stackStrategy": "samesign",
|
||||||
|
"cursor": "pointer",
|
||||||
|
"barMinHeight": 0,
|
||||||
|
"barCategoryGap": "20%",
|
||||||
|
"barGap": "30%",
|
||||||
|
"large": false,
|
||||||
|
"largeThreshold": 400,
|
||||||
|
"seriesLayoutBy": "column",
|
||||||
|
"datasetIndex": 0,
|
||||||
|
"clip": true,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"label": {
|
||||||
|
"show": true,
|
||||||
|
"position": "top",
|
||||||
|
"margin": 8,
|
||||||
|
"formatter": "{c}"
|
||||||
|
},
|
||||||
|
"rippleEffect": {
|
||||||
|
"show": true,
|
||||||
|
"brushType": "stroke",
|
||||||
|
"scale": 2.5,
|
||||||
|
"period": 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"legend": [
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u521b\u65b0\u80fd\u529b"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10,
|
||||||
|
"left": "35%",
|
||||||
|
"orient": "horizontal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u7ecf\u6d4e\u6d3b\u529b\u6307\u6570"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10,
|
||||||
|
"right": "5%",
|
||||||
|
"orient": "horizontal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
"\u6295\u8d44\u6f5c\u529b"
|
||||||
|
],
|
||||||
|
"selected": {},
|
||||||
|
"show": true,
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"itemWidth": 25,
|
||||||
|
"itemHeight": 14,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"borderRadius": 0,
|
||||||
|
"pageButtonItemGap": 5,
|
||||||
|
"pageButtonPosition": "end",
|
||||||
|
"pageFormatter": "{current}/{total}",
|
||||||
|
"pageIconColor": "#2f4554",
|
||||||
|
"pageIconInactiveColor": "#aaa",
|
||||||
|
"pageIconSize": 15,
|
||||||
|
"animationDurationUpdate": 800,
|
||||||
|
"selector": false,
|
||||||
|
"selectorPosition": "auto",
|
||||||
|
"selectorItemGap": 7,
|
||||||
|
"selectorButtonGap": 10,
|
||||||
|
"right": "30%",
|
||||||
|
"top": "500px",
|
||||||
|
"orient": "horizontal"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"show": true,
|
||||||
|
"trigger": "item",
|
||||||
|
"triggerOn": "mousemove|click",
|
||||||
|
"axisPointer": {
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
"showContent": true,
|
||||||
|
"alwaysShowContent": false,
|
||||||
|
"showDelay": 0,
|
||||||
|
"hideDelay": 100,
|
||||||
|
"enterable": false,
|
||||||
|
"confine": false,
|
||||||
|
"appendToBody": false,
|
||||||
|
"transitionDuration": 0.4,
|
||||||
|
"textStyle": {
|
||||||
|
"fontSize": 14
|
||||||
|
},
|
||||||
|
"borderWidth": 0,
|
||||||
|
"padding": 5,
|
||||||
|
"order": "seriesAsc"
|
||||||
|
},
|
||||||
|
"xAxis": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 0,
|
||||||
|
"axisLabel": {
|
||||||
|
"show": true,
|
||||||
|
"rotate": -30,
|
||||||
|
"margin": 8,
|
||||||
|
"fontSize": 10
|
||||||
|
},
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
"\u67f3\u5dde\u5e02",
|
||||||
|
"\u6842\u6797\u5e02",
|
||||||
|
"\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
"\u7389\u6797\u5e02",
|
||||||
|
"\u767e\u8272\u5e02",
|
||||||
|
"\u68a7\u5dde\u5e02",
|
||||||
|
"\u94a6\u5dde\u5e02",
|
||||||
|
"\u5d07\u5de6\u5e02",
|
||||||
|
"\u6cb3\u6c60\u5e02",
|
||||||
|
"\u8d3a\u5dde\u5e02",
|
||||||
|
"\u8d35\u6e2f\u5e02",
|
||||||
|
"\u6765\u5bbe\u5e02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 1,
|
||||||
|
"axisLabel": {
|
||||||
|
"show": true,
|
||||||
|
"rotate": -30,
|
||||||
|
"margin": 8,
|
||||||
|
"fontSize": 10
|
||||||
|
},
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
"\u67f3\u5dde\u5e02",
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
"\u6842\u6797\u5e02",
|
||||||
|
"\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"\u767e\u8272\u5e02",
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
"\u7389\u6797\u5e02",
|
||||||
|
"\u94a6\u5dde\u5e02",
|
||||||
|
"\u68a7\u5dde\u5e02",
|
||||||
|
"\u6cb3\u6c60\u5e02",
|
||||||
|
"\u5d07\u5de6\u5e02",
|
||||||
|
"\u8d35\u6e2f\u5e02",
|
||||||
|
"\u8d3a\u5dde\u5e02",
|
||||||
|
"\u6765\u5bbe\u5e02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 2,
|
||||||
|
"axisLabel": {
|
||||||
|
"show": true,
|
||||||
|
"rotate": -30,
|
||||||
|
"margin": 8,
|
||||||
|
"fontSize": 10
|
||||||
|
},
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"data": [
|
||||||
|
"\u5357\u5b81\u5e02",
|
||||||
|
"\u67f3\u5dde\u5e02",
|
||||||
|
"\u6842\u6797\u5e02",
|
||||||
|
"\u9632\u57ce\u6e2f\u5e02",
|
||||||
|
"\u767e\u8272\u5e02",
|
||||||
|
"\u7389\u6797\u5e02",
|
||||||
|
"\u94a6\u5dde\u5e02",
|
||||||
|
"\u5317\u6d77\u5e02",
|
||||||
|
"\u68a7\u5dde\u5e02",
|
||||||
|
"\u5d07\u5de6\u5e02",
|
||||||
|
"\u8d35\u6e2f\u5e02",
|
||||||
|
"\u8d3a\u5dde\u5e02",
|
||||||
|
"\u6cb3\u6c60\u5e02",
|
||||||
|
"\u6765\u5bbe\u5e02"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"yAxis": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 0,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 1,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"scale": false,
|
||||||
|
"nameLocation": "end",
|
||||||
|
"nameGap": 15,
|
||||||
|
"gridIndex": 2,
|
||||||
|
"inverse": false,
|
||||||
|
"offset": 0,
|
||||||
|
"splitNumber": 5,
|
||||||
|
"minInterval": 0,
|
||||||
|
"splitLine": {
|
||||||
|
"show": true,
|
||||||
|
"lineStyle": {
|
||||||
|
"show": true,
|
||||||
|
"width": 1,
|
||||||
|
"opacity": 1,
|
||||||
|
"curveness": 0,
|
||||||
|
"type": "solid"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": [
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u5404\u5730\u5e02\u521b\u65b0\u80fd\u529b\u5206\u6790\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"left": "5%",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u5404\u5730\u5e02\u5730\u57df\u7ecf\u6d4e\u6d3b\u529b\u5206\u6790\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"left": "54%",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": true,
|
||||||
|
"text": "2018\u5e74\u5e7f\u897f\u5404\u5730\u5e02\u6295\u8d44\u6f5c\u529b\u5206\u6790\u56fe",
|
||||||
|
"target": "blank",
|
||||||
|
"subtarget": "blank",
|
||||||
|
"left": "30%",
|
||||||
|
"top": "500px",
|
||||||
|
"padding": 5,
|
||||||
|
"itemGap": 10,
|
||||||
|
"textAlign": "auto",
|
||||||
|
"textVerticalAlign": "auto",
|
||||||
|
"triggerEvent": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grid": [
|
||||||
|
{
|
||||||
|
"show": false,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"left": "5%",
|
||||||
|
"top": "50px",
|
||||||
|
"right": "55%",
|
||||||
|
"bottom": "550px",
|
||||||
|
"containLabel": false,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"shadowOffsetX": 0,
|
||||||
|
"shadowOffsetY": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": false,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"left": "55%",
|
||||||
|
"top": "50px",
|
||||||
|
"right": "5%",
|
||||||
|
"bottom": "550px",
|
||||||
|
"containLabel": false,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"shadowOffsetX": 0,
|
||||||
|
"shadowOffsetY": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show": false,
|
||||||
|
"zlevel": 0,
|
||||||
|
"z": 2,
|
||||||
|
"left": "30%",
|
||||||
|
"top": "550px",
|
||||||
|
"right": "30%",
|
||||||
|
"bottom": "50px",
|
||||||
|
"containLabel": false,
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"borderColor": "#ccc",
|
||||||
|
"borderWidth": 1,
|
||||||
|
"shadowOffsetX": 0,
|
||||||
|
"shadowOffsetY": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
chart_76e98bf0e56d4ee99d70eefd2c0cce7c.setOption(option_76e98bf0e56d4ee99d70eefd2c0cce7c);
|
||||||
|
window.addEventListener('resize', function(){
|
||||||
|
chart_76e98bf0e56d4ee99d70eefd2c0cce7c.resize();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,268 @@
|
|||||||
|
import happybase
|
||||||
|
from pyspark.sql import SparkSession, Row
|
||||||
|
import os
|
||||||
|
|
||||||
|
from pyspark.sql import SparkSession
|
||||||
|
from pyspark.sql import functions as F
|
||||||
|
from pyspark.sql.functions import when
|
||||||
|
from pyecharts import options as opts
|
||||||
|
from pyecharts.charts import Map, Scatter, Page
|
||||||
|
|
||||||
|
# 指定python环境
|
||||||
|
os.environ['PYSPARK_PYTHON'] = 'D:\python\python3.11.4\python.exe'
|
||||||
|
os.environ['JAVA_HOME'] = "D:\jdk\jdk-17.0.8" # 记得把地址改成自己的
|
||||||
|
|
||||||
|
def xja_code01():
|
||||||
|
# 创建Spark会话
|
||||||
|
spark = SparkSession.builder.appName("HBaseDataLoading").master('local').getOrCreate()
|
||||||
|
|
||||||
|
# 连接到HBase
|
||||||
|
connection = happybase.Connection('192.168.23.128')
|
||||||
|
|
||||||
|
# 获取表
|
||||||
|
table = connection.table('bigdata')
|
||||||
|
|
||||||
|
# 定义列名
|
||||||
|
columns = ['info:地址', 'info:营业收入', 'info:净利润']
|
||||||
|
|
||||||
|
# 查询数据
|
||||||
|
data = []
|
||||||
|
for key, row in table.scan(columns=[col.encode('utf-8') for col in columns]):
|
||||||
|
row_data = {
|
||||||
|
'序号': key.decode(),
|
||||||
|
'地址': row['info:地址'.encode('utf-8')].decode(),
|
||||||
|
'净利润': row['info:净利润'.encode('utf-8')].decode(),
|
||||||
|
'营业收入': row['info:营业收入'.encode('utf-8')].decode()
|
||||||
|
}
|
||||||
|
data.append(row_data)
|
||||||
|
|
||||||
|
# 关闭连接
|
||||||
|
connection.close()
|
||||||
|
|
||||||
|
# 将数据转换为Spark DataFrame
|
||||||
|
df = spark.createDataFrame([Row(**{k: str(v) for k, v in i.items()}) for i in data])
|
||||||
|
|
||||||
|
# 需要的列名
|
||||||
|
df = df.select('地址', '营业收入', '净利润')
|
||||||
|
df = df.filter((df['地址'].isNotNull()) & (df['地址'] != 'qingxiubgs2014@sina.com'))
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 按照城市进行分组,并计算数量和净利润总数,保留两位小数
|
||||||
|
df_grouped = df.groupBy('地址').agg(
|
||||||
|
F.count('地址').alias('数量'),
|
||||||
|
F.round(F.sum('净利润'), 2).alias('总净利润'),
|
||||||
|
F.round(F.sum('营业收入'), 2).alias('总营业收入')
|
||||||
|
)
|
||||||
|
|
||||||
|
# 假设 df_grouped 是包含聚合数据的 DataFrame
|
||||||
|
data = df_grouped.toPandas()
|
||||||
|
|
||||||
|
# 创建 '总净利润' 的地图图表
|
||||||
|
map_net_profit = (
|
||||||
|
Map()
|
||||||
|
.add("总净利润(千元)", list(zip(data['地址'], data['总净利润'])), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西企业总净利润对比图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(data['总净利润'])),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 创建 '总营业收入' 的地图图表
|
||||||
|
map_total_revenue = (
|
||||||
|
Map()
|
||||||
|
.add("总营业收入(千元)", list(zip(data['地址'], data['总营业收入'])), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西企业总营业收入对比图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(data['总营业收入'])),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 创建 '数量' 的地图图表
|
||||||
|
map_count = (
|
||||||
|
Map()
|
||||||
|
.add("数量", list(zip(data['地址'], data['数量'])), "广西")
|
||||||
|
.set_global_opts(
|
||||||
|
title_opts=opts.TitleOpts(title="2018年广西企业数量分布图"),
|
||||||
|
visualmap_opts=opts.VisualMapOpts(max_=max(data['数量'])),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 创建页面对象
|
||||||
|
page = Page(layout=Page.SimplePageLayout)
|
||||||
|
|
||||||
|
# 添加 '总净利润'、'总营业收入' 和 '数量' 的地图图表到页面
|
||||||
|
page.add(map_net_profit)
|
||||||
|
page.add(map_total_revenue)
|
||||||
|
page.add(map_count)
|
||||||
|
|
||||||
|
return page
|
@ -0,0 +1,242 @@
|
|||||||
|
import happybase
|
||||||
|
from pyecharts.charts import Line
|
||||||
|
from pyspark.sql import SparkSession, Row
|
||||||
|
from pyspark.sql import functions as F
|
||||||
|
import os
|
||||||
|
|
||||||
|
from pyecharts import options as opts
|
||||||
|
|
||||||
|
# 指定python环境
|
||||||
|
os.environ['PYSPARK_PYTHON'] = 'D:\python\python3.11.4\python.exe'
|
||||||
|
os.environ['JAVA_HOME'] = "D:\jdk\jdk-17.0.8" # 记得把地址改成自己的
|
||||||
|
|
||||||
|
def xja_code02():
|
||||||
|
# 创建Spark会话
|
||||||
|
spark = SparkSession.builder.appName("HBaseDataLoading").master('local').getOrCreate()
|
||||||
|
|
||||||
|
# 连接到HBase
|
||||||
|
connection = happybase.Connection('192.168.23.128')
|
||||||
|
|
||||||
|
# 获取表
|
||||||
|
table = connection.table('bigdata')
|
||||||
|
|
||||||
|
# 需要的列族:列限定符
|
||||||
|
columns = ['info:地址', 'info:其中:研发、试验检验费', 'info:其中:技术(研究)开发费', 'info:其中:支付科研人员的工资及福利费', 'info:营业成本']
|
||||||
|
|
||||||
|
# 查询数据
|
||||||
|
data = []
|
||||||
|
for key, row in table.scan(columns=[col.encode('utf-8') for col in columns]):
|
||||||
|
row_data = {
|
||||||
|
'序号': key.decode(),
|
||||||
|
'地址': row['info:地址'.encode('utf-8')].decode(),
|
||||||
|
'其中:研发、试验检验费': row['info:其中:研发、试验检验费'.encode('utf-8')].decode(),
|
||||||
|
'其中:技术(研究)开发费': row['info:其中:技术(研究)开发费'.encode('utf-8')].decode(),
|
||||||
|
'其中:支付科研人员的工资及福利费': row['info:其中:支付科研人员的工资及福利费'.encode('utf-8')].decode(),
|
||||||
|
'营业成本': row['info:营业成本'.encode('utf-8')].decode()
|
||||||
|
}
|
||||||
|
data.append(row_data)
|
||||||
|
|
||||||
|
# 关闭连接
|
||||||
|
connection.close()
|
||||||
|
|
||||||
|
# 将数据转换为Spark DataFrame
|
||||||
|
df = spark.createDataFrame([Row(**{k: str(v) for k, v in i.items()}) for i in data])
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', F.when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 对广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', F.when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
df = df.withColumn('研发投入金额',
|
||||||
|
F.col('其中:研发、试验检验费') +
|
||||||
|
F.col('其中:技术(研究)开发费') +
|
||||||
|
F.col('其中:支付科研人员的工资及福利费'))
|
||||||
|
df_grouped = df.groupBy('地址').agg({"研发投入金额": "sum", "营业成本": "sum"})
|
||||||
|
|
||||||
|
df_grouped = df_grouped.withColumn('sum(研发投入金额)', F.round(F.col('sum(研发投入金额)')).cast('integer'))
|
||||||
|
df_grouped = df_grouped.withColumn('sum(营业成本)', F.round(F.col('sum(营业成本)')).cast('integer'))
|
||||||
|
|
||||||
|
df_grouped = df_grouped.withColumn("研发投入比(%)",
|
||||||
|
F.round(F.col('sum(研发投入金额)') / F.col('sum(营业成本)') * 100, 2))
|
||||||
|
|
||||||
|
pandas_df = df_grouped.toPandas()
|
||||||
|
|
||||||
|
pandas_df.index = range(1, len(pandas_df) + 1)
|
||||||
|
|
||||||
|
line = Line()
|
||||||
|
|
||||||
|
line.add_xaxis(pandas_df['地址'].tolist())
|
||||||
|
line.add_yaxis("研发投入比(%)", pandas_df['研发投入比(%)'].tolist())
|
||||||
|
|
||||||
|
# 设置全局配置项
|
||||||
|
line.set_global_opts(
|
||||||
|
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0)), # 调整x轴标签间隔
|
||||||
|
)
|
||||||
|
|
||||||
|
return line
|
@ -0,0 +1,238 @@
|
|||||||
|
import happybase
|
||||||
|
from pyecharts.charts import Bar
|
||||||
|
from pyspark.sql import SparkSession, Row
|
||||||
|
from pyspark.sql import functions as F
|
||||||
|
from pyspark.sql.functions import when
|
||||||
|
import os
|
||||||
|
|
||||||
|
from pyecharts import options as opts
|
||||||
|
|
||||||
|
# 指定python环境
|
||||||
|
os.environ['PYSPARK_PYTHON'] = 'D:\python\python3.11.4\python.exe'
|
||||||
|
os.environ['JAVA_HOME'] = "D:\jdk\jdk-17.0.8" # 记得把地址改成自己的
|
||||||
|
|
||||||
|
def xja_code03():
|
||||||
|
# 创建Spark会话
|
||||||
|
spark = SparkSession.builder.appName("HBaseDataLoading").master('local').getOrCreate()
|
||||||
|
|
||||||
|
# 连接到HBase
|
||||||
|
connection = happybase.Connection('192.168.23.128')
|
||||||
|
|
||||||
|
# 获取表
|
||||||
|
table = connection.table('bigdata')
|
||||||
|
|
||||||
|
# 需要的列族:列限定符
|
||||||
|
columns = ['info:地址', 'info:其中:研发、试验检验费', 'info:其中:技术(研究)开发费', 'info:其中:支付科研人员的工资及福利费']
|
||||||
|
|
||||||
|
# 查询数据
|
||||||
|
data = []
|
||||||
|
for key, row in table.scan(columns=[col.encode('utf-8') for col in columns]):
|
||||||
|
row_data = {
|
||||||
|
'序号': key.decode(),
|
||||||
|
'地址': row['info:地址'.encode('utf-8')].decode(),
|
||||||
|
'其中:研发、试验检验费': row['info:其中:研发、试验检验费'.encode('utf-8')].decode(),
|
||||||
|
'其中:技术(研究)开发费': row['info:其中:技术(研究)开发费'.encode('utf-8')].decode(),
|
||||||
|
'其中:支付科研人员的工资及福利费': row['info:其中:支付科研人员的工资及福利费'.encode('utf-8')].decode()
|
||||||
|
}
|
||||||
|
data.append(row_data)
|
||||||
|
|
||||||
|
# 关闭连接
|
||||||
|
connection.close()
|
||||||
|
|
||||||
|
# 将数据转换为Spark DataFrame
|
||||||
|
df = spark.createDataFrame([Row(**{k: str(v) for k, v in i.items()}) for i in data])
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
df = df.withColumn('研发投入额',
|
||||||
|
F.col('其中:研发、试验检验费') +
|
||||||
|
F.col('其中:技术(研究)开发费') +
|
||||||
|
F.col('其中:支付科研人员的工资及福利费'))
|
||||||
|
df_grouped = df.groupBy('地址').sum('研发投入额')
|
||||||
|
df_grouped = df_grouped.withColumn('sum(研发投入额)', F.round(F.col('sum(研发投入额)')).cast('integer'))
|
||||||
|
df_grouped = df_grouped.withColumnRenamed('sum(研发投入额)', '研发总投入额')
|
||||||
|
df_grouped_sorted = df_grouped.orderBy('研发总投入额')
|
||||||
|
|
||||||
|
pandas_df = df_grouped_sorted.toPandas()
|
||||||
|
|
||||||
|
pandas_df.index = range(1, len(pandas_df) + 1)
|
||||||
|
|
||||||
|
bar = Bar()
|
||||||
|
|
||||||
|
bar.add_xaxis(pandas_df['地址'].tolist())
|
||||||
|
bar.add_yaxis("研发总投入额(千元)", pandas_df['研发总投入额'].tolist())
|
||||||
|
|
||||||
|
bar.set_global_opts(
|
||||||
|
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0)), # 调整x轴标签间隔
|
||||||
|
)
|
||||||
|
|
||||||
|
return bar
|
Loading…
Reference in new issue