kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Stumbling  Through Data Science
Stumbling Through Data Science
Question

Barplot Seaborn - Menampilkan Nilai-nilai

Saya ingin melihat bagaimana melakukan dua hal di Seaborn dengan menggunakan diagram batang untuk menampilkan nilai yang ada di dalam dataframe, tetapi tidak di dalam grafik

  1. Saya ingin menampilkan nilai dari satu bidang dalam dataframe sambil membuat grafik yang lain. Misalnya, di bawah ini, saya membuat grafik 'tip', tetapi saya ingin menempatkan nilai 'total_bill' di tengah-tengah di atas setiap bar (mis.325.88 di atas hari Jumat, 1778.40 di atas hari Sabtu, dll.)

  2. Apakah ada cara untuk menskalakan warna bar, dengan nilai terendah dari 'total_bill' memiliki warna paling terang (dalam hal ini hari Jumat) dan nilai tertinggi dari 'total_bill' memiliki warna paling gelap. Jelas, saya akan tetap menggunakan satu warna (yaitu biru) ketika saya melakukan penskalaan.

Terima kasih! Saya yakin ini mudah, tapi saya melewatkannya...

** Sementara saya melihat bahwa orang lain berpikir bahwa ini adalah duplikat dari masalah lain (atau dua), saya kehilangan bagian bagaimana saya menggunakan nilai yang tidak ada dalam grafik sebagai dasar untuk label atau bayangan. Bagaimana saya mengatakan, gunakan total_bill sebagai dasar. Maaf, tapi saya tidak bisa mengetahuinya berdasarkan jawaban-jawaban tersebut.

Dimulai dengan kode berikut,

import pandas as pd
import seaborn as sns
%matplotlib inline
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-    book/master/ch08/tips.csv", sep=',')
groupedvalues=df.groupby('day').sum().reset_index()
g=sns.barplot(x='day',y='tip',data=groupedvalues)

Saya mendapatkan hasil berikut ini:

masukkan deskripsi gambar di sini

Solusi Sementara:

for index, row in groupedvalues.iterrows():
    g.text(row.name,row.tip, round(row.total_bill,2), color='black', ha="center")

masukkan deskripsi gambar di sini

Pada shading, dengan menggunakan contoh di bawah ini, saya mencoba yang berikut ini:

import pandas as pd
import seaborn as sns
%matplotlib inline
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-book/master/ch08/tips.csv", sep=',')
groupedvalues=df.groupby('day').sum().reset_index()

pal = sns.color_palette("Greens_d", len(data))
rank = groupedvalues.argsort().argsort() 
g=sns.barplot(x='day',y='tip',data=groupedvalues)

for index, row in groupedvalues.iterrows():
    g.text(row.name,row.tip, round(row.total_bill,2), color='black', ha="center")

Tetapi itu memberi saya kesalahan berikut:

AttributeError: 'DataFrame' objek tidak memiliki atribut 'argsort'

Jadi saya mencoba modifikasi:

import pandas as pd
import seaborn as sns
%matplotlib inline
df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-book/master/ch08/tips.csv", sep=',')
groupedvalues=df.groupby('day').sum().reset_index()

pal = sns.color_palette("Greens_d", len(data))
rank=groupedvalues['total_bill'].rank(ascending=True)
g=sns.barplot(x='day',y='tip',data=groupedvalues,palette=np.array(pal[::-1])[rank])

dan itu membuat saya dengan

IndexError: indeks 4 di luar batas untuk sumbu 0 dengan ukuran 4

18 2017-04-04T18:31:00+00:00 3
Stumbling  Through Data Science
Stumbling Through Data Science
Pertanyaan edit 4 April 2017 в 10:24
Pemrograman
python
pandas
matplotlib
seaborn
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Solution / Answer
 ImportanceOfBeingErnest
ImportanceOfBeingErnest
4 April 2017 в 10:50
2017-04-04T22:50:00+00:00
Lebih
Sumber
Sunting
#33188672

Mari kita tetap berpegang pada solusi dari pertanyaan yang ditautkan (Mengubah skala warna dalam plot batang seaborn). Anda ingin menggunakan argsort untuk menentukan urutan warna yang akan digunakan untuk mewarnai bar. Dalam pertanyaan terkait, argsort diterapkan pada objek Series, yang berfungsi dengan baik, sementara di sini Anda memiliki DataFrame. Jadi Anda perlu memilih satu kolom DataFrame itu untuk menerapkan argsort.

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

df = sns.load_dataset("tips")
groupedvalues=df.groupby('day').sum().reset_index()

pal = sns.color_palette("Greens_d", len(groupedvalues))
rank = groupedvalues["total_bill"].argsort().argsort() 
g=sns.barplot(x='day',y='tip',data=groupedvalues, palette=np.array(pal[::-1])[rank])

for index, row in groupedvalues.iterrows():
    g.text(row.name,row.tip, round(row.total_bill,2), color='black', ha="center")

plt.show()

masukkan deskripsi gambar di sini


Percobaan kedua juga berfungsi dengan baik, satu-satunya masalah adalah bahwa peringkat yang dikembalikan oleh `rank()` dimulai dari `1`, bukan nol. Jadi kita harus mengurangi 1 dari larik. Juga untuk pengindeksan kita membutuhkan nilai integer, jadi kita perlu meng-cast ke `int`.
rank = groupedvalues['total_bill'].rank(ascending=True).values
rank = (rank-1).astype(np.int)
 Community
Community
Jawaban edit 23 Mei 2017 в 10:31
22
0
Kecerdasan buatan untuk mengurai produk dari halaman mana pun
productapi.dev
Sharon Soussan
Sharon Soussan
26 Juli 2018 в 9:20
2018-07-26T09:20:35+00:00
Lebih
Sumber
Sunting
#33188673

Bekerja dengan kapak tunggal atau dengan matriks kapak (subplot)

from matplotlib import pyplot as plt
import numpy as np

def show_values_on_bars(axs):
    def _show_on_single_plot(ax):        
        for p in ax.patches:
            _x = p.get_x() + p.get_width() / 2
            _y = p.get_y() + p.get_height()
            value = '{:.2f}'.format(p.get_height())
            ax.text(_x, _y, value, ha="center") 

    if isinstance(axs, np.ndarray):
        for idx, ax in np.ndenumerate(axs):
            _show_on_single_plot(ax)
    else:
        _show_on_single_plot(axs)

fig, ax = plt.subplots(1, 2)
show_values_on_bars(ax)
Sharon Soussan
Sharon Soussan
Jawaban edit 26 Juli 2018 в 9:28
14
0
Kecerdasan buatan untuk mengurai produk dari halaman mana pun
productapi.dev
 âńōŋŷXmoůŜ
âńōŋŷXmoůŜ
4 April 2017 в 10:49
2017-04-04T22:49:06+00:00
Lebih
Sumber
Sunting
#33188671

Semoga ini membantu untuk item #2: a) Anda dapat mengurutkan berdasarkan total tagihan kemudian mengatur ulang indeks ke kolom ini b) Gunakan palette="Blue" untuk menggunakan warna ini untuk menskalakan grafik Anda dari biru muda ke biru tua (jika biru tua ke biru muda maka gunakan palette="Blues_d")

import pandas as pd
import seaborn as sns
%matplotlib inline

df=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-book/master/ch08/tips.csv", sep=',')
groupedvalues=df.groupby('day').sum().reset_index()
groupedvalues=groupedvalues.sort_values('total_bill').reset_index()
g=sns.barplot(x='day',y='tip',data=groupedvalues, palette="Blues")
2
0
Related communities 6
Python Indonesia
Python Indonesia
25 704 pengguna
Programmer Python Indonesia. Group ini dikelola oleh sejumlah admin. Baca pesan tersemat / pinned message: https://t.me/pythonID/217588
Buka telegram
Indonesian Python Warriors
Indonesian Python Warriors
1 492 pengguna
Di grup ini tidak ada kewajiban untuk menggunakan username dan foto. Yang tidak boleh adalah spamming. Gak boleh baper, kalau nanya yang bener, eror jangan difoto pake HP, gunakan screenshot, code copas ke dpaste.org lalu share link ke sini.
Buka telegram
Python-ID Jogja
Python-ID Jogja
946 pengguna
Buka telegram
Python Newbie Indonesia
Python Newbie Indonesia
449 pengguna
Peraturan grup Python Newbie 🌻Dilarang spam 🌻Dilarang menggunakan bahasa kasar 🌻Dilarang beriklan di grup tanpa seizin admin Beberapa video dasar python dapat diliat melalui channel youtube juan aditya Jangan lupa untuk subscribe ya🙏
Buka telegram
BASIC PYTHON INDONESIA
BASIC PYTHON INDONESIA
368 pengguna
Buka telegram
PythonWealth Indonesia 🇮🇩
PythonWealth Indonesia 🇮🇩
15 pengguna
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Анна Литвиненко
Terdaftar 1 hari yang lalu
2
Inessa bu
Terdaftar 1 bulan yang lalu
3
Denis Babushkin
Terdaftar 1 bulan yang lalu
4
asakuno asakuno
Terdaftar 1 bulan yang lalu
5
aldo salerno
Terdaftar 1 bulan yang lalu
Kecerdasan buatan untuk mengurai produk dari halaman mana pun
productapi.dev
ES
ID
JA
KO
RU
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi