Ich habe versucht, Stückpreisdaten nach Sprache mit Real Gachi von Python zu aggregieren und zu vergleichen

Ich wollte die Stückpreise von freiberuflichen Projekten von früher nach Sprache vergleichen und aggregieren, also habe ich sie tatsächlich untersucht.

Informationen zu freiberuflichen Projekten werden auf der folgenden Website zusammengestellt Da auf der Seite jeder Sprache aggregierte Informationen vorhanden waren, basiert dies darauf

Revatec Freiberuflich tätig https://freelance.levtech.jp

** * Daten vom 21. November 2020 **

Cloud.csv
created_at,skill,count,avg_price,max_price,min_price
20201121,OpenShift,5,62,65,60
20201121,Amazon VPC,1,70,70,70
20201121,Google Cloud Platform,55,80,105,53
20201121,Dynamics CRM,1,65,65,65
20201121,Amazon S3,2,80,85,75
20201121,Amazon EC2,2,74,85,64
20201121,AWS,1926,76,135,20
20201121,Google App Engine,7,77,95,60
20201121,Amazon SimpleDB,1,80,80,80
20201121,Force.com,2,70,70,70
20201121,Office 365,9,56,65,40
20201121,Microsoft Azure,141,67,90,50
20201121,OpenStack,21,64,80,45
20201121,Heroku,29,75,102,55
DB.csv
created_at,skill,count,avg_price,max_price,min_price
20201121,Kyoto Tycoon,1,75,75,75
20201121,SQLite,20,72,90,55
20201121,MySQL,1465,75,125,35
20201121,Symfoware Server,4,60,65,55
20201121,Cassandra,14,62,80,45
20201121,PostgreSQL,487,71,135,35
20201121,Riak,5,63,100,45
20201121,Bigtable,3,86,95,80
20201121,SQL Server,375,65,95,35
20201121,Redis,296,78,105,39
20201121,Hbase,5,68,75,60
20201121,Oracle,971,66,115,25
20201121,Sybase,6,75,85,65
20201121,IMS,3,58,64,55
20201121,Access,88,60,145,40
20201121,DB2,79,64,95,35
FrameWork.csv
created_at,skill,count,avg_price,max_price,min_price
20201121,Pyramid,12,77,105,65
20201121,Rails,237,81,115,45
20201121,MyBatis,61,71,85,55
20201121,Node.js,256,77,125,45
20201121,Backbone.js,77,76,115,39
20201121,Knockout.js,4,72,90,55
20201121,AngularJS,152,74,105,47
20201121,Laravel,343,73,125,40
20201121,JUnit,80,73,125,50
20201121,Wicket,3,82,95,70
20201121,Django,89,83,115,55
20201121,Padrino,2,82,85,80
20201121,iBATIS,14,67,80,55
20201121,Silex,4,76,80,75
20201121,FuelPHP,101,76,115,50
20201121,MVC,69,68,95,37
20201121,CodeIgniter,39,74,105,45
20201121,Liferay,1,70,70,70
20201121,React,378,77,115,40
20201121,Spark,19,82,95,55
20201121,PhoneGap,3,86,95,80
20201121,JSF,18,64,75,55
20201121,jQuery,354,71,95,35
20201121,Seasar2,32,70,95,49
20201121,Spring,362,71,115,45
20201121,Bottle,1,75,75,75
20201121,Catalyst,26,64,72,55
20201121,intra-mart,14,70,135,50
20201121,SAStruts,16,71,95,57
20201121,Flask,25,82,125,65
20201121,Sinatra,6,78,85,75
20201121,Struts,129,67,95,45
20201121,Symfony,55,74,95,55
20201121,CakePHP,149,71,95,50
Language.csv
created_at,skill,count,avg_price,max_price,min_price
20201121,PHP,1560,72,145,35
20201121,CSS,650,70,125,35
20201121,C Sprache,269,68,115,35
20201121,UML,7,70,85,50
20201121,C++,374,72,125,45
20201121,C#.NET,147,62,80,32
20201121,Transact-SQL,6,65,75,55
20201121,Kotlin,270,83,125,45
20201121,VB,83,62,85,40
20201121,HTML5,305,72,115,35
20201121,VC,8,61,66,50
20201121,C#,706,68,115,35
20201121,Apex,49,79,135,55
20201121,VBA,165,60,145,30
20201121,ASP.NET,161,65,95,48
20201121,Go,361,81,125,39
20201121,PL/SQL,146,63,85,45
20201121,COBOL,81,61,95,37
20201121,LESS,9,74,115,55
20201121,Swift,407,81,125,50
20201121,VC++,30,65,90,52
20201121,HTML,674,69,125,35
20201121,CSS3,209,75,115,35
20201121,Java,2484,70,145,25
20201121,JSP,54,68,105,55
20201121,Sass,55,71,115,45
20201121,SQL,881,65,145,33
20201121,VBScript,44,62,75,45
20201121,Objective-C,247,76,115,40
20201121,CoffeeScript,16,81,95,65
20201121,JavaScript,1749,72,125,20
20201121,Lua,6,73,80,65
20201121,R Sprache,19,78,95,65
20201121,Smalltalk,2,75,80,70
20201121,Scala,117,83,115,55
20201121,Perl,108,73,110,50
20201121,Shell,193,64,95,45
20201121,SAS,12,61,75,50
20201121,Ruby,652,80,125,39
20201121,ABAP,12,67,80,55
20201121,Python,669,78,145,32
20201121,VB.NET,284,62,85,40
OS.csv
created_at,skill,count,avg_price,max_price,min_price
20201121,Windows,998,63,135,25
20201121,Red Hat,92,66,95,40
20201121,Solaris,37,61,80,40
20201121,AIX,77,63,90,52
20201121,Ubuntu,39,75,90,45
20201121,Unix,236,69,100,40
20201121,AS/400,1,65,65,65
20201121,FreeBSD,3,70,75,62
20201121,HP-UX,21,62,75,55
20201121,Windows Server,387,62,100,33
20201121,Android,563,78,125,35
20201121,Linux,2266,69,135,30

Klicken Sie hier, um die Ausgabequelle für das Grafikbild anzuzeigen

print_graph.py

import datetime
import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

"""
Gemeinsame Einstellung für Variable / Konstante
"""
DATA_PATH = 'data'
now = datetime.datetime.today()
CATEGORIES = {
    'Language',
    'FrameWork',
    'DB',
    'OS',
    'Cloud'
}

"""
Hauptverarbeitung
"""
def main() -> None:

    make_date = now.strftime("%Y%m%d")

    #Verzeichnis erstellen
    os.makedirs(DATA_PATH + '/graphs/' + make_date, exist_ok=True)

    price_graph(make_date)
    count_graph(make_date)
    mix_graph(make_date)


"""
Erstellung eines Einheitspreisdiagramms
"""
def price_graph(make_date: str) -> None:

    for category_key in CATEGORIES:
        df = pd.read_csv(DATA_PATH + '/levtech/' + category_key + '.csv')
        df = df.sort_values(by=['avg_price'], ascending=False)
        labels = df['skill'].str.replace('[Ah-Hmm-Einer-龥]+', '', regex=True)  #Japanisch löschen
        y_list1 = df['avg_price']

        fig = plt.figure(figsize=(14, 7))

        ax1 = fig.add_subplot(1, 1, 1)
        ax1.bar(labels, y_list1, color='tab:blue')
        ax1.set_ylabel('price')
        ax1.set_title(category_key)

        #Vertikale Anzeige der X-Achse
        ax1.set_xticklabels(labels, rotation=90)

        #Fügen Sie dem Balkendiagramm einen numerischen Wert hinzu
        for x, y in zip(labels, y_list1):
            ax1.text(x, y, y, ha='center', va='bottom')

        # plt.show()
        fig.savefig(DATA_PATH + '/graphs/' + make_date + '/levtech-' + category_key + '-price.png', bbox_inches='tight', format='png', dpi=300)


"""
Erstellen Sie ein Diagramm der Anzahl der Fälle
"""
def count_graph(make_date: str) -> None:

    for category_key in CATEGORIES:
        df = pd.read_csv(DATA_PATH + '/levtech/' + category_key + '.csv')
        df = df.sort_values(by=['count'], ascending=False)
        labels = df['skill'].str.replace('[Ah-Hmm-Einer-龥]+', '', regex=True)  #Japanisch löschen
        y_list1 = df['count']

        fig = plt.figure(figsize=(14, 7))

        ax1 = fig.add_subplot(1, 1, 1)
        ax1.bar(labels, y_list1, color='tab:orange')
        ax1.set_ylabel('count')
        ax1.set_title(category_key)

        #Vertikale Anzeige der X-Achse
        ax1.set_xticklabels(labels, rotation=90)

        #Fügen Sie dem Balkendiagramm einen numerischen Wert hinzu
        for x, y in zip(labels, y_list1):
            ax1.text(x, y, y, ha='center', va='bottom', fontsize='small')

        # plt.show()
        fig.savefig(DATA_PATH + '/graphs/' + make_date + '/levtech-' + category_key + '-count.png', bbox_inches='tight', format='png', dpi=300)


"""
Stückpreis und Anzahl der Projekte Diagrammerstellung
"""
def mix_graph(make_date: str) -> None:

    for category_key in CATEGORIES:
        df = pd.read_csv(DATA_PATH + '/levtech/' + category_key + '.csv')
        df = df.sort_values(by=['avg_price'], ascending=False)

        labels = df['skill'].str.replace('[Ah-Hmm-Einer-龥]+', '', regex=True)  #Japanisch löschen
        y_list1 = df['avg_price']
        y_list2 = df['count']

        fig = plt.figure(figsize=(14, 7))

        left = np.arange(len(labels))
        width = 0.3

        ax1 = fig.add_subplot(1, 1, 1)
        ax1.bar(labels, y_list1, width=width, color='tab:blue', label='price')
        ax1.set_ylabel('price')
        ax1.set_title(category_key)

        ax2 = ax1.twinx()
        ax2.bar(left + width, y_list2, width=width, color='tab:orange', label='count')
        ax2.set_ylabel('count')

        #Vertikale Anzeige der X-Achse
        ax1.set_xticklabels(labels, rotation=90)

        #Fügen Sie dem Balkendiagramm einen numerischen Wert hinzu
        for x, y in zip(labels, y_list1):
            ax1.text(x, y, y, ha='center', va='bottom')

        for x, y in zip(left + width, y_list2):
            ax2.text(x, y, y, ha='center', va='bottom', fontsize='small')

        #Ausgabelegende
        handler1, label1 = ax1.get_legend_handles_labels()
        handler2, label2 = ax2.get_legend_handles_labels()
        ax1.legend(handler1 + handler2, label1 + label2)

        # plt.show()
        fig.savefig(DATA_PATH + '/graphs/' + make_date + '/levtech-' + category_key + '-mix.png', bbox_inches='tight', format='png', dpi=300)


if __name__ == '__main__':
    main()

Aktuelle Grafik

Sprache

Nach Stückpreis

levtech-Language-price.png

Nach Anzahl der Fälle

levtech-Language-count.png

Stückpreis und Anzahl der Projekte mischen sich

levtech-Language-mix.png

Die Spitze ist Kotlin. Ich bin überzeugt, dass es derzeit an Android-Ingenieuren mangelt. Wenn Sie sich die Anzahl der Projekte und den Stückpreis für das Websystem ansehen, scheinen Ruby, Python und go gut zu sein. Ich hatte das Bild, dass der Stückpreis von Java vorerst hoch ist, aber es ist überraschend, dass PHP höher ist, ist die Nachfrage nicht zu hoch?

Dann das Framework

Nach Stückpreis

levtech-FrameWork-price.png

Nach Anzahl der Fälle

levtech-FrameWork-count.png

Stückpreis und Anzahl der Projekte mischen sich

levtech-FrameWork-mix.png

Die Spitze ist PhoneGap. Ich habe dies zum ersten Mal gehört, aber es scheint sich um ein plattformübergreifendes Framework für die Entwicklung mobiler Anwendungen zu handeln, das von Nitobi entwickelt und veröffentlicht wurde. Django und Rails scheinen gut für das Web zu sein. Da React für die Web- und Anwendungsentwicklung verwendet wird, sind die Anzahl der Projekte und der Stückpreis gut. Vue hatte keine Informationen an der Site-Quelle. ..

DB

Nach Stückpreis

levtech-DB-price.png

Nach Anzahl der Fälle

levtech-DB-count.png

Stückpreis und Anzahl der Projekte mischen sich

levtech-DB-mix.png

Die Oberseite ist großer Tisch. Ich höre oft Bigquery, aber der Unterschied scheint wie eine große Datenbank zu sein, die schneller läuft als Bigquery. In Bezug auf DB besteht kein Zweifel, ob Sie sich in Bezug auf die Kostenleistung an MySQL erinnern. Oracle und SQL Server sind überraschend niedrig. Warum,,,

Cloud

Nach Stückpreis

levtech-Cloud-price.png

Nach Anzahl der Fälle

levtech-Cloud-count.png

Stückpreis und Anzahl der Projekte mischen sich

levtech-Cloud-mix.png

Der höchste Stückpreis ist GCP! AWS ist überwältigend, wenn es um die Anzahl der Projekte geht! Vorerst scheint es besser, sich zumindest an AWS zu erinnern. Wenn die Nachfrage zu hoch wird, sinkt der Stückpreis tendenziell. Daher ist es möglicherweise besser, sich an GCP zu erinnern, wenn man die Zukunft betrachtet. Azure hat eine heikle Anzahl von Angeboten und Stückpreisen

Impressionen

Das Ergebnis war sehr interessant! Wenn Sie von nun an ein Web-System verwenden, wächst Python möglicherweise. Es ist einfach, eine Umgebung aufzubauen, indem man sie tatsächlich berührt. Reichhaltige Bibliothek. Ich war besonders beeindruckt, wie einfach es ist, CSV → Diagramme zu erstellen! Es ist wirklich schön, schnell mit dem Back-End erstellen und ein Image erstellen zu können, anstatt die HTML- oder JS-Bibliothek zu verwenden, um verrückt zu werden ~

Diesmal ist es das Ergebnis einer Untersuchung eines der Projektstandorte. Bitte verwenden Sie es als Referenz! Informationen zu Vue, Graphql und Rust wurden nicht aufgelistet, daher mache ich mir darüber Sorgen.

Recommended Posts

Ich habe versucht, Stückpreisdaten nach Sprache mit Real Gachi von Python zu aggregieren und zu vergleichen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich habe eine funktionale Sprache mit Python ausprobiert
[Data Science-Grundlagen] Ich habe versucht, mit Python von CSV auf MySQL zu speichern
Ich habe versucht, mit einem Remote-Server über Socket-Kommunikation mit Python zu kommunizieren.
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
Ich habe versucht, fMRI-Daten mit Python zu analysieren (Einführung in die Dekodierung von Gehirninformationen)
Wie man offline in Echtzeit schreibt Ich habe versucht, E12 mit Python zu lösen
Ich habe versucht, die Blasensortierung nach Sprache zu programmieren
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Der NW-Ingenieur hat versucht, Adressen mit Pythons netaddr zu aggregieren
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Ich habe versucht, einen Pandas-Datenrahmen zu erstellen, indem ich mit Python Informationen zum Lebensmittelrückruf abgekratzt habe
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich möchte Daten mit Python analysieren können (Teil 3)
Ich habe verschiedene Methoden ausprobiert, um japanische Post mit Python zu senden
Ich möchte Daten mit Python analysieren können (Teil 1)
Ich möchte Daten mit Python analysieren können (Teil 4)
[Einführung in Pandas] Ich habe versucht, die Austauschdaten durch Dateninterpolation zu erhöhen ♬
[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren
Ich habe versucht, MNIST nach GNN zu klassifizieren (mit PyTorch-Geometrie).
Mayungos Python Learning Episode 3: Ich habe versucht, Zahlen zu drucken
Ich habe versucht, den Immobilienpreis in Boston mit PyCaret vorherzusagen
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Ich habe versucht, in einem tief erlernten Sprachmodell zu schreiben
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Ich habe versucht, den Datenverkehr mit WebSocket in Echtzeit zu beschreiben
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Ich habe versucht, Python zu berühren (Installation)
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe versucht, die Sprecheridentifikation mithilfe der Sprechererkennungs-API von Azure Cognitive Services mit Python zu überprüfen. # 1
Aktienkurs mit "neuer Corona" gesunken? Ich habe versucht, den durchschnittlichen Aktienkurs von Nikkei durch Web-Scraping zu ermitteln
Ich habe versucht zu beheben "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren"
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht herauszufinden, ob ReDoS mit Python möglich ist
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
Ich habe versucht, die Satzklassifizierung durch Self Attention mit PyTorch zu implementieren
Ich habe versucht, die Sprecheridentifikation mithilfe der Sprechererkennungs-API von Azure Cognitive Services in Python zu überprüfen. # 2
Ich habe versucht, alle Bemerkungen von Slack mit Wordcloud (Python) zusammenzufassen.
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, Gesichtsmarkierungen mit Python und Dlib leicht zu erkennen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern