:10836.732}, {姓名:‘西方 撒哈拉 </跨度> ’,价值:514.648}, {name:‘Saudi Arabia’,价值:27258.387}, {name:‘Sudan’,价值:35652.002
使用在Quasar / Vue / Nodejs中通过npm安装的echarts,我们必须针对名称(在本例中为“world”)注册图表的地图json文件,以消除丢失的地图错误。 Laravel可能需要类似的东西:
echarts.registerMap('world',require('echarts/map/json/world.json')); this.chart = echarts.init(this.$refs.chart);
我发现要使用 PHP版的echarts 对Laravel来说更友好,所以这里是步骤:
1-在您的模型中使图表功能如下:
namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; use \Hisune\EchartsPHP\ECharts; use \Hisune\EchartsPHP\Doc\IDE\Series; use Hisune\EchartsPHP\Config; class User extends Authenticatable{ public function nationality_geo(){ $nationality_array=user::all('nationality')->unique('nationality'); $countries=array( "AF"=>"Afghan","AX"=>"\u00c5land Island","AL"=>"Albanian","DZ"=>"Algerian","AS"=>"American Samoan","AD"=>"Andorran","AO"=>"Angolan","AI"=>"Anguillan","AQ"=>"Antarctic","AG"=>"Antiguan or Barbudan","AR"=>"Argentine","AM"=>"Armenian","AW"=>"Aruban","AU"=>"Australian","AT"=>"Austrian","AZ"=>"Azerbaijani, Azeri","BS"=>"Bahamian","BH"=>"Bahraini","BD"=>"Bangladeshi","BB"=>"Barbadian","BY"=>"Belarusian","BE"=>"Belgian","BZ"=>"Belizean","BJ"=>"Beninese, Beninois","BM"=>"Bermudian, Bermudan","BT"=>"Bhutanese","BO"=>"Bolivian","BQ"=>"Bonaire","BA"=>"Bosnian or Herzegovinian","BW"=>"Motswana, Botswanan","BV"=>"Bouvet Island","BR"=>"Brazilian","IO"=>"BIOT","BN"=>"Bruneian","BG"=>"Bulgarian","BF"=>"Burkinab\u00e9","BI"=>"Burundian","CV"=>"Cabo Verdean","KH"=>"Cambodian","CM"=>"Cameroonian","CA"=>"Canadian","KY"=>"Caymanian","CF"=>"Central African","TD"=>"Chadian","CL"=>"Chilean","CN"=>"Chinese","CX"=>"Christmas Island","CC"=>"Cocos Island","CO"=>"Colombian","KM"=>"Comoran, Comorian","CG"=>"Congolese","CD"=>"Congolese","CK"=>"Cook Island","CR"=>"Costa Rican","CI"=>"Ivorian","HR"=>"Croatian","CU"=>"Cuban","CW"=>"Cura\u00e7aoan","CY"=>"Cypriot","CZ"=>"Czech","DK"=>"Danish","DJ"=>"Djiboutian","DM"=>"Dominican","DO"=>"Dominican","EC"=>"Ecuadorian","EG"=>"Egyptian","SV"=>"Salvadoran","GQ"=>"Equatorial Guinean, Equatoguinean","ER"=>"Eritrean","EE"=>"Estonian","ET"=>"Ethiopian","FK"=>"Falkland Island","FO"=>"Faroese","FJ"=>"Fijian","FI"=>"Finnish","FR"=>"French","GF"=>"French Guianese","PF"=>"French Polynesian","TF"=>"French Southern Territories","GA"=>"Gabonese","GM"=>"Gambian","GE"=>"Georgian","DE"=>"German","GH"=>"Ghanaian","GI"=>"Gibraltar","GR"=>"Greek, Hellenic","GL"=>"Greenlandic","GD"=>"Grenadian","GP"=>"Guadeloupe","GU"=>"Guamanian, Guambat","GT"=>"Guatemalan","GG"=>"Channel Island","GN"=>"Guinean","GW"=>"Bissau-Guinean","GY"=>"Guyanese","HT"=>"Haitian","HM"=>"Heard Island or McDonald Islands","VA"=>"Vatican","HN"=>"Honduran","HK"=>"Hong Kong, Hong Kongese","HU"=>"Hungarian, Magyar","IS"=>"Icelandic","IN"=>"Indian","ID"=>"Indonesian","IR"=>"Iranian, Persian","IQ"=>"Iraqi","IE"=>"Irish","IM"=>"Manx","IL"=>"Israeli","IT"=>"Italian","JM"=>"Jamaican","JP"=>"Japanese","JE"=>"Channel Island","JO"=>"Jordanian","KZ"=>"Kazakhstani, Kazakh","KE"=>"Kenyan","KI"=>"I-Kiribati","KP"=>"North Korean","KR"=>"South Korean","KW"=>"Kuwaiti","KG"=>"Kyrgyzstani, Kyrgyz, Kirgiz, Kirghiz","LA"=>"Lao, Laotian","LV"=>"Latvian","LB"=>"Lebanese","LS"=>"Basotho","LR"=>"Liberian","LY"=>"Libyan","LI"=>"Liechtenstein","LT"=>"Lithuanian","LU"=>"Luxembourg, Luxembourgish","MO"=>"Macanese, Chinese","MK"=>"Macedonian","MG"=>"Malagasy","MW"=>"Malawian","MY"=>"Malaysian","MV"=>"Maldivian","ML"=>"Malian, Malinese","MT"=>"Maltese","MH"=>"Marshallese","MQ"=>"Martiniquais, Martinican","MR"=>"Mauritanian","MU"=>"Mauritian","YT"=>"Mahoran","MX"=>"Mexican","FM"=>"Micronesian","MD"=>"Moldovan","MC"=>"Mon\u00e9gasque, Monacan","MN"=>"Mongolian","ME"=>"Montenegrin","MS"=>"Montserratian","MA"=>"Moroccan","MZ"=>"Mozambican","MM"=>"Burmese","NA"=>"Namibian","NR"=>"Nauruan","NP"=>"Nepali, Nepalese","NL"=>"Dutch, Netherlandic","NC"=>"New Caledonian","NZ"=>"New Zealand, NZ","NI"=>"Nicaraguan","NE"=>"Nigerien","NG"=>"Nigerian","NU"=>"Niuean","NF"=>"Norfolk Island","MP"=>"Northern Marianan","NO"=>"Norwegian","OM"=>"Omani","PK"=>"Pakistani","PW"=>"Palauan","PS"=>"Palestinian","PA"=>"Panamanian","PG"=>"Papua New Guinean, Papuan","PY"=>"Paraguayan","PE"=>"Peruvian","PH"=>"Philippine, Filipino","PN"=>"Pitcairn Island","PL"=>"Polish","PT"=>"Portuguese","PR"=>"Puerto Rican","QA"=>"Qatari","RE"=>"R\u00e9unionese, R\u00e9unionnais","RO"=>"Romanian","RU"=>"Russian","RW"=>"Rwandan","BL"=>"Barth\u00e9lemois","SH"=>"Saint Helenian","KN"=>"Kittitian or Nevisian","LC"=>"Saint Lucian","MF"=>"Saint-Martinoise","PM"=>"Saint-Pierrais or Miquelonnais","VC"=>"Saint Vincentian, Vincentian","WS"=>"Samoan","SM"=>"Sammarinese","ST"=>"S\u00e3o Tom\u00e9an","SA"=>"Saudi Arabian","SN"=>"Senegalese","RS"=>"Serbian","SC"=>"Seychellois","SL"=>"Sierra Leonean","SG"=>"Singaporean","SX"=>"Sint Maarten","SK"=>"Slovak","SI"=>"Slovenian, Slovene","SB"=>"Solomon Island","SO"=>"Somali, Somalian","ZA"=>"South African","GS"=>"South Georgia or South Sandwich Islands","SS"=>"South Sudanese","ES"=>"Spanish","LK"=>"Sri Lankan","SD"=>"Sudanese","SR"=>"Surinamese","SJ"=>"Svalbard","SZ"=>"Swazi","SE"=>"Swedish","CH"=>"Swiss","SY"=>"Syrian","TW"=>"Chinese, Taiwanese","TJ"=>"Tajikistani","TZ"=>"Tanzanian","TH"=>"Thai","TL"=>"Timorese","TG"=>"Togolese","TK"=>"Tokelauan","TO"=>"Tongan","TT"=>"Trinidadian or Tobagonian","TN"=>"Tunisian","TR"=>"Turkish","TM"=>"Turkmen","TC"=>"Turks and Caicos Island","TV"=>"Tuvaluan","UG"=>"Ugandan","UA"=>"Ukrainian","AE"=>"Emirati, Emirian, Emiri","GB"=>"British, UK","UM"=>"American","US"=>"American","UY"=>"Uruguayan","UZ"=>"Uzbekistani, Uzbek","VU"=>"Ni-Vanuatu, Vanuatuan","VE"=>"Venezuelan","VN"=>"Vietnamese","VG"=>"British Virgin Island","VI"=>"U.S. Virgin Island","WF"=>"Wallis and Futuna, Wallisian or Futunan","EH"=>"Sahrawi, Sahrawian, Sahraouian","YE"=>"Yemeni","ZM"=>"Zambian","ZW"=>"Zimbabwean" ); foreach ($nationality_array as $nationality_data) { $country_code=array_search($nationality_data->nationality,$countries,false); $nationalitys[]=[ 'value' => user::all()->where('nationality',$nationality_data->nationality)->count(), 'name' => $country_code ]; } $chart = new ECharts(); $chart->visualMap->min = 0; $chart->visualMap->max = 100; $chart->visualMap->text = ['High', 'Low']; $chart->visualMap->calculable = true; $chart->visualMap->inRange->color = ['#20c997', '#dc3545']; $chart->tooltip->trigger = 'item'; $chart->tooltip->formatter = '{a} {b} {c}'; $chart->title->text='Employee Nationality Distribution'; $chart->title->textStyle->color='#17a2b8'; $chart->title->left='center'; $chart->title->top='top'; $chart->toolbox->show=true; $chart->toolbox->orient='vertical'; $chart->toolbox->left='right'; $chart->toolbox->top='center'; $chart->toolbox->feature->mark->show=true; $chart->toolbox->feature->restore->show=true; $chart->toolbox->feature->restore->title='Restore'; $chart->toolbox->feature->saveAsImage->show=true; $chart->toolbox->feature->saveAsImage->title='Save'; $series = new Series(); $series->name = 'From '; $series->type = 'map'; $series->map = 'world'; $series->nameMap = \Hisune\EchartsPHP\Countries::nameMap(); $series->data = $nationalitys; $series->label->emphasis->show = true; $series->label->emphasis->textStyle->color = '#fff'; $series->roam = true; $series->scaleLimit->min = 1; $series->scaleLimit->max = 5; $series->itemStyle->normal->borderColor = '#bbb'; $series->itemStyle->normal->areaColor = '#F5F6FA'; $series->itemStyle->emphasis->areaColor = '#441744'; $chart->addSeries($series); //refer to world map : Config::addExtraScript('world.js', 'https://cdn.rawgit.com/hisune/images/7b31b0a0/echarts'); return $chart->render('map'); } }
2 - 然后在你的刀片中调用它:
{!! Auth::user()->nationality_geo() !!}